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