****************************************************************************
*                                                                          *
* CBData 0.4 - 3rd January 1999                                            *
*                                                                          *
* A CodeBase 6.x Compatible DataSet for Delphi 3.0 & Delphi 4.0            *
*                                                                          *
****************************************************************************

CBData component package is FREEWARE...

1) Description
---------------
CBData contains 2 components that encapsulate the CODE4 and DATA4 CodeBase
structures: TCodeBase and TCBDataSet.

The encapsulation of DATA4 structure (TCBDataSet) is derivated from TDataSet.
That means that you can use all the Data Controls (DBGrid, DBMemo, ...)
exactly as if you were using BDE.

CBData V0.4 is compatible with:
- Delphi 3.0    (CB64.DPL)
- Delphi 4.0    (CB64.DPC)
- CodeBase 6.4 (6.2 and 6.3 versions are available on demand)
- Fox, MDX, and Clipper formats
- Desktop or Client/Server

2) What do you need to use CBData
---------------------------------
2.1 The CodeBase 6.x 32bits DLL
2.2 The DCU files contained in this package
2.3 In Delphi, Select Component|Install Packages... and select CB64.DPL

3) Creating a sample application
--------------------------------
3.1 Put a TCodeBase (C4) component on your form
    Give it an Alias and a DataPath
3.2 Put a TCBDataSet (D4) component on your form
    Set the Master property to the TCodeBase Alias
    Select a TableName, and eventually an IndexName
3.3 Optionally set Query and/or a Sort order.
3.4 Set the TCBDataSet Active property to True
3.5 Put a TDataSource component on your form and link it to the TCBDataSet component
3.6 Add some Data controls and test it...

4) Feedback
------------
Feedback is greatly appreciated:

by e-mail: nasdron@ibm.net

Nicolas Nasdrovisky

5) Components overview
----------------------

5.1 TCodeBase - Encapsulation of the CODE4 structure

      properties (mainly encapsulation of CODE4 fields):
      -----------
        AccessMode:           TCODE4AccessMode;
        Alias:                String;
        DataPath:             String;
        DateFormat:           String;
        ErrorCode:            Integer;
        FileFlush:            Boolean;
        Handle:               CODE4;
        LockAttempts:         Integer;
        LockAttemptsSingle:   Integer;
        LockDelay:            Integer;
        LockEnforce:          Boolean;
        Log:                  TCODE4Log;  
        Optimize:             TCODE4Optimize;
        OptimizeWrite:        TCODE4Optimize;
        ReadOnly:             Boolean;
        Safety:               Boolean;
        SingleOpen:           Boolean;
        TranStatus:           Integer;
        UnlockAuto:           TCODE4UnlockAuto;

      methods (mainly encapsulation of CODE4 functions):
      --------
        Close:                Integer;
        ClearError;
        Create(AOwner: TComponent);
        Destroy;
        Flush:                Integer;
        Lock:                 Integer;
        LockClear;
        LogCreate(Name: String; UserId: String): Integer;
        TranCommit:           Integer;
        TranRollBack:         Integer;
        TranStart:            Integer;
        Unlock:               Integer;

5.2 TCBDataSet - Encapsulation of the DATA4 structure

      properties:
      -----------
        Active:                Boolean;
        Handle:                DATA4;
        IndexName:             String;
        Master:                String;
        Filter:                String;
        Query:                 String;
        Sort:                  String;
        TableName:             String;
        ToggleDelete:          Boolean;

	  + inherited TDataSet properties (Active, BOF, EOF, RecordCount, State, ...)

      events:
      -------
        BeforeOpen;
        AfterOpen;
        BeforeClose;
        AfterClose;
        BeforeInsert;
        AfterInsert;
        BeforeEdit;
        AfterEdit;
        BeforePost;
        AfterPost;
        BeforeCancel;
        AfterCancel;
        BeforeDelete;
        AfterDelete;
        BeforeScroll;
        AfterScroll;
        OnCalcFields;

      methods (mainly encapsulation of DATA4 functions):
      --------
        Create(AOwner: TComponent);
        Destroy;
        Deleted:                       Boolean;
        Flush;
        GetTags:                       TStringList;
        GetTables:                     TStringList;
        IsSequenced:                   Boolean;
        Lock;
        Pack;
        Recall;
        Seek(Key: String):             Boolean;
        SeekNext(Key: String):         Boolean;
        SeekDouble(Key: Double):       Boolean;
        SeekNextDouble(Key: Double):   Boolean;
        Unlock;
        Zap;

        + inherited TDataSet methods (Open, Close, First, Last, Next, FieldByName, ...)

6) Source code availability
---------------------------
For 100 USD, get the full source code of this release and all the future
releases of CBData components.

To receive the sources by e-mail, please contact:

    SC Graphitex
    Nicolas Nasdrovisky
    route de Paturages, 5A
    B7080 NOIRCHAIN
    Belgium
    e-mail: nasdron@ibm.net
    fax: +32 (65) 51.20.02

VISA orders are possible (by fax)

7) Changes
----------

V0.1 - 1st novembre 1997
----
  - First release

V0.2 - 14th decembre 1997
----
  - Lookup fields are now working.
  - New function: LogCreate.
  - Transactions support.
  - A few bugs removed:
    - Record positioning after Post.

V0.4 - 3rd january 1999
----
  - Client/Server compatibility
  - Delphi 4.0 and CodeBase 6.4 compatibility
  - New "Filter" property (much faster than "Query")
    "Filter" property uses Seek functions, and needs an index to be selected.

8) Credits
----------
Many thanks to:

Charlie Zha, for the great "lookup" code.

Hakki Dogusan, for the BCB++ 3.0 adaptation (please ask by e-mail)