home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
255.lha
/
Isam
/
README
< prev
next >
Wrap
Text File
|
1989-06-13
|
7KB
|
160 lines
The ISAM File System
**********************
The ISAM File System functions provide an easy way of programming relational
data base systems using the (I)ndex (S)equential (A)ccess (M)ethod. Included
is the Amiga link file (library) for use with own programs. The routines are
written in C and compiled under Lattice 4.0.
This is version 0.9 BETA release of the functions. (I tested it with a small
program but had no time to do more testing in a complex data base system with
more files open etc.)
Also, the ISAM.lib is no real library yet. You simply get ALL the ISAM
functions linked with your program. The functions use the malloc/free
standard routines, which allocate some bytes for their own use when
requesting memory, but they are compatible with every C compiler (and other
systems). If you have problems linking the ISAM.lib to your program (eg a
function is used your compiler does not have), please tell me. Here's a list
of all external symbols ISAM.lib uses:
_open, _close, _read, _write, _lseek, _malloc, _free, _stricmp -> the
standard functions every C compiler should have.
_access -> a UNIX function which tests file accessibility
(__base)
__xcovf
_CXM22, _CXM33
Now, a VERY important note:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Author makes no warranty of any kind with respect to the
documentation or the software described therein, its quality,
performance, merchantability, or fitness for a particular
application. The Author shall not be liable for errors contained
herein or for incidental or consequential damages in connection
with the use of this product.
-----------------------------------------------------------------------------
This software is PUBLIC DOMAIN. It is freely distributable in public domain
series, BBSs etc., on condition that the following files are included and
remain unchanged:
README - this file
ISAM.doc - the documentation describing each function
ISAM.h - the Lattice-C 4.0 header file for C programs
ISAM.lib - the link library containing the functions
demo.c - a program demonstrating the use of the ISAM functions
demo.lnk - linkage information for demo.c
demo - executable demo
Demo.info - icon for demo
compile.doc - how to compile the demo
If you use the functions in PUBLIC DOMAIN programs or programs for your own
personal use, please send me just that much money you think this software is
worth to develop future versions of it.
Please, put a note in your program (in its title page and documentation) that
says:
"This software uses the ISAM File System Functions Vx.x by Kai Ploog"
or a similar statement!
This version is NOT for commercial use. It is only free for use in
non-commercial programs, like public domain and private ones, and the
copyright stays with the author, anyway.
For commercial use, please contact me.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
If you find any bugs or have any suggestions to improve this software or
have questions, please write to me!
Since this is only a BETA release, I need your help (in form of bug reports)
to release a (hopefully) bug-free version.
My address is:
Kai Oliver Ploog
A.d. Huehnerhecke 1
6074 Roedermark (near Frankfurt/Main)
West-Germany
Hope you'll enjoy this software!
PS: I have an Amiga 2000B (1Meg), a C= 1084 monitor, two disk drives (no
HD) and a Star NL-10 printer connected via my old Commodore 64.
I'd find it very interesting, if everyone who publishes programs in public
domain series would also mention which system configuration/hardware he/she
uses.
*****************************************************************************
Documentation:
--------------
ISAM stands for Index Sequential Access Method. That means, every single
record on the disk is accessed via a key hold in memory. This principle is
very efficient for complex data bases with many records. The key list in
memory has to be updated after every change or before exiting your program
(automatically done with every change or when closing the ISAM file, see
ISAM.doc). The keys are held in a double-chained list, so the max amount of
records only depends on your system memory and (hard) disk space. For
example, if you have a 512K Amiga with 300K free and your key field (eg the
name in an address file) is 30 characters max, you can have up to 7300
records (addresses)! If you have a disk drive (880K) connected to your Amiga
and only have that 300K free, one record can have 123 characters to exactly
fill the disk with 7300 records. If you have a (very big...) hard disk and
enough memory space, one ISAM File can have up to 4,294,967,295 (4 GIGA !)
bytes/characters (sorry that it isn't more, but it depends on the system...
but find a hard disk that has 4096 mega bytes!)
Okay, here are some more facts, compared with a famous data base system for
MS-DOS computers (I cannot give the name here because I want no troubles with
the law of some countries):
| ISAM File System | d???? III+
-----------------------------------------------------------------------------
No. files open at a time | ML | 10
Max field length | 65,536 | 4,000
Max fields per record | 65,536 | 128
Max record length | 65,536 | ? (less than 4,000)
Max records per file | 4,294,967,295 | 1,000,000,000
Max file size | 4,294,967,295 (ML) | ? (ML)
ML = machine limit
The routines are entirely written in portable C source (using standard
library functoins), but I possibly will release an Amiga'ized version, for
example as a system library at a later time (when it is supposed to be
bug-free). This version should be fast, but I didn't test it with many
records (in the Amiga'ized version it will become even faster). Also, you
still need the C.LIB routines of your C compiler to use this version.
Look in the ISAM.doc, ISAM.h and demo.c files for more information about how
to write programs with my routines. (It is very easy, so I don't write more
documentation than necessary.)
I hope you will use the ISAM File System extensively and help to release
future versions!
KAI, 4/5/1989