ReadMe.txt
----------

=================================================
 AdtTable 1.61 *** Only for TAdsDataSet 2.60 ***
=================================================


Description:
------------
This component provides transactions on Advantage Local Server (ALS)
on the TAdsTable level.
More or less the same capabilities and restrictions as found in the BDE
local transactions apply to this component.  More information on
features and restrictions can be found in this file.


Features/Restrictions:
----------------------
- this component can be used with Delphi 3, 4 and 5 and is tested against
  DBF/CDX and ADT tables
- only regular TTable operations can be rolled back; extended AdsXXX methods
  and TAdsQuery are not supported
- like with local BDE transactions, the modifications are immediately
  visible and can be undone by rollback (DirtyRead)
- like with local BDE transactions, there is no failed transaction recovery:
  only explicit rollbacks can be performed.  However, if the TAdtConnection
  object is destroyed or disconnected while a transaction is still pending,
  rollback will be automatic.
- like with local BDE transactions, rollback of appended records will only
  perform a soft delete on DBF tables
- changed/added/deleted records are kept locked during the course of the 
  transaction
- unlike local BDE transactions, AdtTable will automatically upgrade
  to a table lock when the record lock limit is reached, thus avoiding
  an error message
- if AdtTable needs to place a table lock during transaction recording, any
  record lock that was on the table before the transaction started, will
  be released upon transaction termination (Commit/Rollback).
  A table lock will be placed when the maximum number of record locks was
  exceeded during the transaction.
  (see TAdtConnection.MaxLocksPerTable property)
- in order to activate local transactions, you must use both the 
  TAdtConnection and TAdtTable components


Components:
-----------

******************
* TAdtConnection *
******************

/// INHERITED ATTRIBUTES ///

procedure BeginTransaction;

procedure Commit;

procedure RollBack;

property TransactionActive: Boolean; (readonly)

property OnDisconnect: TNotifyEvent;
    
  Remarks:
  - Apart from the features/restrictions described above, these methods/
    properties perform identical to their TAdsConnection counterparts
  - Since none of these methods/properties are declared virtual in the
    ancestor class, you must ensure that you use the proper class type
    when accessing them in your program

/// NEW ATTRIBUTES ///

property MaxLocksPerTable: Integer;

  Use MaxLocksPerTable to set the limit of records locks AdtTable may place
  before a table lock will be requested.  This allows to avoid that the
  Advantage lock limit (see the 'LOCKS' setting in Adslocal.cfg) will be
  reached which will generally result in more table locks being placed 
  in a less predictable fashion. (*)
  Default: 1024.

property PrivateDir: String;

  Use PrivateDir to set the directory in which to store the temporary
  transaction recording file.
  Default: the Windows TEMP directory.

(*) It is advisable to increase the LOCKS setting in Adslocal.cfg when
    using AdtTable in order to avoid table locks being placed.
    If you are using Novell NetWare, you should also check the maximum
    record lock limit per connection on the server.
    Set this to a higher value than the Advantage LOCKS setting.
    Example: 
    - Advantage Local Server LOCKS: 2048; 
    - NetWare maximum record locks per connection: 2240.

*************
* TAdtTable *
*************

/// INHERITED ATTRIBUTES ///

  All inherited methods are protected and don't visibly alter the TAdsTable
  behavior.

/// NEW ATTRIBUTES ///

  None.


License conditions:
-------------------
This program is may be used in compiled form in your programs
without license fee.  There are no nags screens or other
restrictions in usage.
If you register this software, you'll receive the source code by email 
and eventual upgrades will automatically be sent to you.  A small
license fee is asked as a compensation for my research on this
software.
You can register using the Register.txt file.


Installation:
-------------
Unzip the component files of the target compiler in a separate directory.
AdtTbl3.zip is for Delphi 3, AdtTbl4.zip for Delphi 4 and AdtTbl5.zip for
Delphi 5.
Install the package using Component | Install Packages | Add.  The components
will be installed on the 'Samples' page by default.
You may also need to put the directory in the library path of Delphi.
This ReadMe.txt file is the only documentation.


History:
--------
Ver 1.61:
* fixed: appending with AutoInc field raised an exception
Ver 1.60:
* supports TAdsDataSet 2.60

Ver 1.51:
* 'hot' fix extended to support pending changes on more than one TAdtTable
* fixed: Cancel after Edit/Insert raised an exception
Ver 1.50:
* supports TAdsDataSet 2.50

Ver 1.03:
* fixed: TAdtConnection.BeforeCommit/AfterCommit/BeforeRollback/AfterRollback
  called now
Ver 1.02:
* better method to check for Advantage lock table limit
* fixed: second unbalanced call to BeginTransaction gives error now
Ver 1.01:
* 'hot' fix of dataset in dsInsert mode added


Copyright/Warranty:
-------------------
This component is copyrighted  by ADM2000 Software nv/sa.
You may not redistribute it in source code, neither integrally nor 
partially, without the prior written consent of the author.

Neither the author nor ADM2000 Software warrant anything and don't accept 
liability for any possible damage or data loss this component might cause.
You use this component entirely at your own risk.

If you have questions or suggestions regarding this component, you can
contact the author via email:
    Jan Sprengers
    jan@adm2000.be

