MS Access DAO Components for Delphi 3.0
=======================================

Copyright (C) Gerrit Moeller, 1997 - 1998.

The  DAO  Components  encapsulate the MS Access  Data  Access
Objects for Delphi.

The BDE is not needed to use this Components in Delphi or  to
run  a  Program  containing these Components. The  Components
directly  use the Data Access Objects of MS-Access. So  there
will  be  no performance lost in the BDE. And the performance
of the Access Database System will be optimal utilized.

All  the Features of Access are available to You through this
Components (e.g. DB User Administration, Data encryption, DB-
Repair,  DB-Compression, DB Open modes, ...).  Many  of  this
Features can't be used if a Program uses the BDE to access  a
Access Database.

Since the DAO Driver of Access supports a ODBC direct way  to
access  the  Data you can still use ODBC with this Components
for  Data  access. The direct ODBC is much  faster  than  the
normal ODBC Data Access.

All  Standard Data aware Controls of Delphi can be used  with
the  Components included here. For changing existing Programs
you   need   only  to  exchange  the  Database  and   Dataset
Components.

Although  the standard Data aware Controls of Delphi  can  be
used with the DAO Data Access Components there is an improved
one  for  each of the Data aware Controls included here.  The
new  ones can reflect changes in the State of the Dataset  by
changing  their  Color.  And  they  allow  the  entering   of
additional Characters if the Dataset is in Filter  State.  So
every SQL Filter criteria can be entered in Filter State. The
TDAORecordSet has some additional Methods to handle such  SQL
Filters automatically.

All the new Data aware Controls handling BLOB Data (TDAOMemo,
TDAORichEdit, TDAOImage) Recognize dropped Files.  So  it  is
possible  to maintain BLOB Data simply by dropping  Files  on
the corresponding Data Controls.

In  Addition  there are two new Data aware Controls  included
here.  A  TDAOMediaPlayer  and a  TDAOMediaPlayerScreen.  The
Mediaplayer plays Audio and Video directly from  a  Field  of
some  Table of the Database. It recognizes Dropped Files too.
If there is a Mediaplayer Screen connected to the Mediaplayer
it  will recognize Files dropped on the Screen too (which  is
more  intuitive  for  the user). The current  Record  can  be
changed  while  the Data of another Record is Played  by  the
Mediaplayer.

DAO  has  many restrictions what can be used in what context.
All this Restrictions are captured by the Components included
here.  If some Method or Property is used in a wrong  context
the  Components  will raise an Exception with  a  very  clear
Message  explaining  what went wrong. All Exception  Messages
include  the  Datatype name, the Component name,  the  Method
name and the Code Address where the Exception was raised.

The Dataset Component included here works with lookup Fields,
calculated  Fields,  QReports,  DBCharts  and  Master  Detail
dependencies.  It  can  access  any  Table  in  the  Database
directly or is the result of a SQL Statement.

Each  of  the  Data Access Components has its  own  Component
Editor  (Doubleclick on the Component). So many  features  of
Access  can be used directly in Compiler design mode  without
starting Access itself.

Many  useful  Properties were added to the  Components.  Some
Examples:

-    The SQL Property of the TDAORecordSet Component has some
  "intelligent" extractions like the "SQLSortField" property.
  If you change this property the corresponding Part of the SQL
  Statement (ORDER BY ...) will be automatically changed too.
  If  that part was not present before it will be inserted at
  the  correct Position in the SQL Statement. If you set  the
  SQLSortField to "" the whole order by clause will be deleted
  from the SQL Statement. Termination with ";" will always be
  corrected too.

-    The  Property  "OnlyIdxFieldVisible" of a  TDAORecordSet
  Component will always keep only the current Index visible in
  a DBGrid. All other Data aware Controls still work fine even
  if their Fields are not visible.

-      The   Property   "SQLAutoComputeParameter"   of    the
  TDAORecordSet Component controls whether the Parameters  of
  the  SQL Statement should be recomputed every time the  SQL
  Statement has been changed. This works in design mode and at
  runtime.

-     The  Property  "RestrictFilterToIndexedFields"  of  the
  TDAORecordSet Component controls whether non indexed Fields
  could be part of a SQL Filter. This ensures good performance
  applying SQL Filters to an TDAORecordSet.

-    The  Event-Property "OnCursorMove" of the  TDAORecordSet
  Component is called every time the Cursor of the Dataset been
  moved to another Record in the Dataset.

-    The  Property "ChangeColorOnDataSetStateChange"  of  all
  new Data aware Controls specifies if the Color of the Control
  should be changed if the State of the Dataset changes.  The
  Color for Each Dataset State is stored in a global Variable
  in the Unit DAOCtrls.

All Code is 32 Bit. The Package works fine with Windows 95 and 
Windows NT 4.0.

All Message and  Error  Strings are of Delphi resource string 
type. So you can change every Exception or Message  generated
by the DAO Components in Language and contents.

The native Access Driver of the BDE doesn't fill new  Records
with default Values defined in  the Database. The  Components
included here do.

The  native  Access  Driver  of  the BDE allows Autoincrement 
Fields to be  edited  resulting  in an Error. The  Components
included here don't allow this.

None of the Components included here has a privat Part in its
definition. So if you inherit from any of the Components  you
can shortcut every Part of my Work.

During  development of the Components I used  a  special  DAO
Object inspector. It shows all Properties of an arbitrary DAO
COM Object. Because somebody may want to dig into the Code  I
included  this DAO Object inspector here (Unit: DaoProp).  In
Addition  you will find a routine called ShowEngineErrors  in
Unit DAOEgErr which shows the last Error of the DB-Engine.

Nearly all Units containing the DAO Components rely on a Unit
called "GMCommon". You will find a lot of useful Routines  in
GMCommon. Like the Delphi standard Unit "SysUtils" it may  be
useful for you in other Projects.

The Components included here have been proved to work fine in
several  Delphi Projects. So they should not Suffer from  any
Serious Bug.

The  DAO  Driver  Version 3.5 need to be  installed  on  your
System if you want to use the Components included here.

The  DAO Driver itself is not Part of this Software. You must
obtain  it elsewhere. The latest version of Installshield  (V
5.1)  contains a Template for installing the DAO Driver.  You
will  find  A  free  evaluation Version of Installshield  5.1
under:

  http://www.installshield.com/products/evals/default.asp


The  complete Interface parts of the PASCAL Source Code Units
used to build the Components are included.


If you want to contact me (E-Mail):

   101.63156@germanynet.de

Or visit my Web Site:

   http://www.germany.net/teilnehmer/101,63156