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):
[email protected]
Or visit my Web Site:
http://www.germany.net/teilnehmer/101,63156