KADao version 1.5
------------------
KADao is a native DAO component for Delphi. 
It is the first freeware component to completly access all databases 
supported by Microsoft DAO (Data Access Objects) including mdb, xls, dbf etc.. 
BDE is not required. Microsoft(r) DAO(tm) must be Installed in order component to run.
Support for both Microsoft(r) Access'xx-Access'97 and Microsoft(r) Access'2000
Features:
 1. Create, Repair, Compact, Encrypt Access'97 and Access'2000 MDB files 
 2. Create tables, add indexes, and fields to existing tables and so on.
 3. Work as a Table an Query Component supporting both Queries and QueryDefs
 4. Compatible with all data aware controls
 5. Master/Detail support

Many examples and latest version you can obtain at http://www.delphi.pari.bg/ 

KADao is a set of two components to use with Microsoft(r) DAO(tm) Engine
KADao is FREE for commercial and non-commercial use i.e it is absolutely free!
It is tested with Delphi 3.0 And Delphi 5.0 but must work without problems 
with any version of Delphi 3-5
Sorry but help file is still not ready!
Expect them in KADao 2.0
LONG LIVE THE FREE SOURCE!

DISCLAIMER OF WARRANTY
----------------------
COMPONENTS ARE SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND. THE AUTHOR
DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
THE WARRANTIES OF MERCHANTABILITY AND OF FITNESS FOR ANY PURPOSE. THE AUTHOR
ASSUMES NO LIABILITY FOR DAMAGES, DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT
FROM THE USE OF COMPONENTS.
USE THIS COMPONENTS AT YOUR OWN RISK

INSTALLATION
------------
First decide what type of databases you will support.
KADao is now setub by default to support Access'2000 databases 
and any try to Repair/Compact an Access'97 will raize an exception.
if You want KADao to to support Access'97 databases by defaul open the files:
KDaoDataBase.pas
KDaoTable.pas
and replace {$DEFINE DAO36} with {$DEFINE DAO35}

1. In Delphi select Component/New component
2. Select Into new package
3. Select two files (KDaoTable.pas and KDaoDataBase.pas) fro the directory where they are located
4. In Package file name type: KADao15
5. In Package description type: KA Dao Data access component 1.5
6. Press OK button

Warning for Delphi 5 users!
---------------------------
You must put a DsgnIntf.pas in the directory where you inslall KADao.
DsgnIntf.pas comes with delphi - you will find it in the Source subdirectory of Delphi


OK. Thats all
Sorry for my bad English.
Any help in future enhancements will be appreciated
Since this is version 1.0 there must be many bugs to fix
For contacts:
 my e-mail: kiril@pari.bg
 my site  : delphi.pari.bg  or www.delphi.pari.bg

Best regards
   Kiril Antonov
   Sofia
   Bulgaria



TKADaoDatabase Class HELP
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------



Property    MachineName     : ShortString;
-------------------------------------------
            This property is unused

Property    Exclusive       : Boolean;
-------------------------------------------
            If True opens Database in Exclusive mode

Property    EngineType      : Integer;
-------------------------------------------
            dbUseJet - default
            dbUseODBC

Property    DatabaseTypes    : TstringList
            Contains all database types supported by DAO Instalation

Property    DatabaseType    : String;
-------------------------------------------
            Acccess         - Microsoft Accsess database - i.e *.mdb
            AllOther        - ISAM Drivers for DBASE, Paradox, Excel etc.

Property    Database        : String;
-------------------------------------------
            If database is a single file - FullFileName of DB file
            If database is in multiple files - Full Path to the files

Property    ReadOnly        : Boolean;
-------------------------------------------
            True disables ability to write to database

Property    LoginPrompt     : Boolean
-------------------------------------------
            True shows Delphi's standard login prompt dialog box

Property    UserName        : ShortString
Property    Password        : ShortString
-------------------------------------------
            Security information (set in runtime is preffered method)

Property    Version         : ShortString;
-------------------------------------------
            3.5 or 3.6 - depends on conditional compilation of source

Property    Workspace       : String
-------------------------------------------
            Name of DAO workspace to use with database
            Leaving it intact is best way

Property    QueryTimeout    : Integer
-------------------------------------------
            Timeout in seconds of a query

Property    Connected       : Boolean
-------------------------------------------
            When set to true a real io with database is established

CoreDBEngine                : DAO35Api.DBEngine;
CoreDatabase                : DAO35Api.Database;
CoreWorkspace               : DAO35Api.Workspace;
-------------------------------------------
           Core DAO interfaces
           You can use them to use other DAO functions not used in Delphi's dataset

Property    QueryDefNames   : TStringList Read F_QueryDefNames;
-------------------------------------------
            When Connected is True contains all stored in database queryes

Property    TableNames      : TStringList Read F_TableNames;
-------------------------------------------
            When Connected is True contains all stored in database tables

Property    ActiveTableNames: TStringList Read F_ActiveTableNames;
-------------------------------------------
            When Connected is True contains all TKADaoTable's using this database control

Procedure                   StartTransaction;
Procedure                   Commit;
Procedure                   Rollback;
-------------------------------------------
           Same as Borland's

Procedure                   RepairAccessDatabase(DatabaseName:String);
Procedure                   CompactAccessDatabase(DatabaseName:String);
Procedure                   CreateAccessDatabase(DatabaseName:String);
-------------------------------------------
          Database miscellations routines

Procedure                   CreateAccessDatabaseEx(DatabaseName,LANGID,CP,COUNTRY,Password,Version:String;Encrypt:Boolean);
-------------------------------------------
                Creates MDB
                DatabaseName : Full name of the mdb file
                LANGID       : Language ID
                Country      : Country ID
                Password     : '' for no password
                Version      : '30' for Access 95/97
                               '40' for Access 2000
                Encrypt      : If set to true encrypts database

Function                    CreateTable(TableName:String; FieldNames : Variant; FieldTypes : Variant; FieldSizes : Variant; FieldIndexes:Variant):Boolean;
-------------------------------------------
                Creates thable with VarArray of Fields in it
                (See demos for more information)

Procedure                   RenameTable(OldTableName,NewTableName:String);
-------------------------------------------
                 Renames a table in active database

Procedure                   DeleteTable(TableName:String);
-------------------------------------------
                 Deletes a table in active database

Procedure                   RenameIndex(TableName,OldIndexName,NewIndexName:String);
-------------------------------------------
                 Renames a index in active database
                 TableName          : Name of the table containing this index
                 OldIndexName       : Old Index Name
                 NewIndexName       : New Index Name


Procedure                   DeleteIndexByName(TableName,IndexName:String);
-------------------------------------------
                 Deletes index by index name

Procedure                   DeleteIndexByFieldName(TableName,FieldName:String);
-------------------------------------------
                 Deletes index of the some field i.e field is NOT indexed

Procedure                   RenameField(TableName,OldFieldName,NewFieldName:String);
-------------------------------------------
                 Renames a field in specyfied table

Procedure                   DeleteField(TableName,FieldName:String);
-------------------------------------------
                 Delete a field in specyfied table

Function                    AddFieldsToTable(TableName:String; FieldNames : Variant; FieldTypes : Variant; FieldSizes : Variant; FieldIndexes:Variant):Boolean;
-------------------------------------------
                 Adds VarArray of Fields to specyfied table
                 (See demos for more information)

Function                    CreateQueryDef(Name:String;SQL:String):Boolean;
-------------------------------------------
                 Create stored in database query
                 Name: Name of the query
                 SQL : Sql definitions

Function                    GetQueryDefSQLText(Name:String):String;
-------------------------------------------
                 Retrieves Sql definitions of stored in the database query

Procedure                   RenameQueryDef(OldQueryName,NewQueryName:String);
-------------------------------------------
                 Renames a stored in the database query

Procedure                   DeleteQueryDef(QueryName:String);
-------------------------------------------
                 Deletes a stored in the database query


TKADaoTable Class HELP
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
Here are described only these functions that are not standart for TDataset component
TKADaoTable works as:
            Standart Table
            QueryDef Table
            Dynamic SQL Table

Property Database            : TKADaoDatabase
-------------------------------------------
         A TKADaoDatabase control to communicate with DAO

Property SortedBy            : TStrings
-------------------------------------------
         TStringList with the namesof the fields to sort
         Each field must be on single row
         Example:
           if a table containts trhee fields:
             ID, Name, LastName
           and a SortedBy contains:
             ID
             Name
           then table will be sorted first on the ID and the on Name field


Property TableName           : String
-------------------------------------------
         Contain the table name on wich all commands will be executed

Property QueryDefName        : String
-------------------------------------------
         if TKADaoTable works as QueryDef Table this field must contain
         the QeryDefName stored in database to be executed

Property QueryDefParameters  : TStrings
-------------------------------------------
         TStringList with the parameters to send to QueryDef
         if Number of parameters are different a exeption is rised

Property QueryDefSQLText     : TStrings
-------------------------------------------
         TStringList with the text of stored in database QueryDef
         This field is read only and is for information purpouses only

Property SQL                 : TStrings
-------------------------------------------
         if TKADaoTable works as Dynamic SQL Table
         this field contains a SQL text to execute

Property TableType           : Integer
-------------------------------------------
         One of DAO predefined table types:
           'StandardTable'   = dbOpenTable       = 1;
           'DynasetTable'    = dbOpenDynaset     = 2;
           'DynamicTable'    = dbOpenDynamic     = 16;
           'SnapshotTable'   = dbOpenSnapshot    = 4;
           'ForwardOnlyTable'= dbOpenForwardOnly = 8;

Property LockType            : Integer
-------------------------------------------
         One of DAO predefined lock type types:
           dbPessimistic = 2;
           dbOptimistic = 3;
           dbOptimisticValue = 1;
           dbOptimisticBatch = 5;

Property OpenOptions         : TOOSet
-------------------------------------------
         Combination of one or more  DAO predefined open options
           dbDenyWrite = 1;
           dbDenyRead = 2;
           dbReadOnly = 4;
           dbAppendOnly = 8;
           dbInconsistent = 16;
           dbConsistent = 32;
           dbSQLPassThrough = 64;
           dbFailOnError = 128;
           dbForwardOnly = 256;
           dbSeeChanges = 512;
           dbRunAsync = 1024;
           dbExecDirect = 2048;

Property IndexName           : String
-------------------------------------------
         If TKADaoTable works as Standart Table then
         this field must contan the index name on wich the table is sorted for example


Property ReadOnly            : Boolean
-------------------------------------------
         If true permits writing to the table

