Short:        Database engine for xBase alike databases (v 1.0)
Author:       Noster-Riede@T-Online.de (Peter "Noster" Riede)
Uploader:     Noster-Riede T-Online de (Peter "Noster" Riede)
Type:         dev/misc
Version:      1.0
Requires:     AmigaOS 2.0 or higher
Architecture: m68k-amigaos
Language:     English

 OVERVIEW:
-----------

THIS LIBRARY IS SHAREWARE. Only developers using this library to develop own
applications have to pay the shareware fee, for 'users' the library is for
free. See the Installation manual for details.

This shared runtime library and the according link library can be used by every
application that needs to store information in a database. The library contains
all functions that are required to create and edit large databases of several
datatables and their according indexes.

The library could be used from every programming language that is able to call
Amiga shared runtime libraries (C-headerfiles included).

The library doesn't provides any graphical user interface (GUI); use whichever
you want for your database application, respectively use the database func-
tionality from any application.

The datatables are organized like XBase-datafiles but they are not compatible
to the several XBase-clones. I renounced to make them compatible because I've
missed several options by the XBase-datatables. So XBase doesn't support the
basic numerical datatypes, XBase use an own format for numerical values stored
in the datatables. They use a fixed-point value but since there is no support
for fixed-point algebra in any known (known by me) operating-system/hardware
this will always result in rounding errors when these values are converted to a
floating-point value to do any arithmetics. So I decided to add support for the
basic numeric datatypes. This library can store simple integer types as single
byte-values, 2 byte words, 4 byte longs, and 8 byte (64-bit) doublelong values
and also floating-point values in single or double precision.
The datatables also support fixed-point numerical values (simular to XBase),
date and time values, strings of fixed and variable length.

The library supports simultaneous multiuser access to these files and does the
required lockings so the accesses of the different instances are serialized to
avoid conflicts. The library supports automatically locking or manual locking
of the records of the datatables. Automatically locking will do it for most
purposes but manual locking may be required for finetuning of an application.

The records of every datatable may be indexed using several indexes. The
indexes are stored in own index-files and the keys in these indexes are
automatically added/changed/removed, whenever the contents of a record is
changed. The keys are build according to a key-expression, that has to be
specified for every index. This key-expression allows to combine several
columns of a datatable to a single key-value, e.g. in an address-datatable you
may combine the columns for the 'name' and 'first name' for an index that is
primary ordered by the 'name' and all entries with equal 'name' are ordered by
the 'first name'. There are also a couple of supported functions that may be
used to manipulate the key-values, e.g. the function "Upper()" that allows to
create an index where the case of the strings doesn't matter for the sorting
order.
Nearly every column-type of the datatables may be indexed, except the columns
containg a variable length string (or custom datatypes that are not
representable by a string or a 64-bit integer).


You should first have a look into the installation manual and then use the
developer manual to learn how to create own applications using the
Database.library.


 FEATURES:
-----------
   - runs on any Amiga with at least AmigaOS 2.0
   - supports simultan multiuser access to the database using record locking
   - supports databases located on network devices
   - supports several datatypes to be stored in the databases
   - expandable concept, write your own extensions for custom datatypes to be
     stored in a database.
   - any number of indexes per datatable allowing to order and seek for nearly
     any contents on the database
   - more than 200 pages english documentation (.guide and .dvi) describing
     installation, usage, performance, and programming containing several
     examples and a   complete tutorial.
   - it's very easy to learn how to create own databases using this library
   - ...(have a look into the documentation contained in this archive)


 INCLUDED DEVELOPER FILES:
---------------------------
  - Autodocs
  - C header files (also protos, pragmas)
  - several C examples showing how to use the database.library
  - complete RKM-alike manual (>160 pages) describing the library and its
    functions including a complete tutorial and additional information,
    required if own enhancements should be added to the functionality.


 FILES:
--------
   This archive should contain the following files:

   README                       - this file
   joinOS.readme                - basic information about joinOS.library
   database.library             - the shared database.library
   joinOS.library               - additional library containing support fct.
   documents/Installation.guide - installation guide as AmigaGuide document
   documents/Installation.dvi   - installation guide as dvi document
   documents/Developer.guide    - developers manual as AmigaGuide document
   documents/Developer.dvi      - developers manual as dvi document
   autodoc/Database.guide       - Autodoc file of the database.library
   autodoc/joinOS.guide         - Autodoc file of the joinOS.library
   lib/Database.lib             - C link-library with additional functions
   lib/joinOS.lib               - C link-library with additional functions
   include/joinOS/...           - C include files required for development
   examples/...                 - several example files inclusive source


 HISTORY
---------
 - Version 1.0, 10. May 2004
      first public release