TBetterADODataSet for Borland Delphi 5, 6 & 7

 

 

by

Vassil Nazarov

Current version: 4.04


 

 

A Brief List of Features

 

 

VERSION HISTORY

Version

Date

Description

4.04 18.Sep.2003

Fixed a bug with filtering on float columns.

Submitted by Frank van Boven and Eric ten Westenend

4.03 04.Sep.2003 Fixed D6 & D7's handling of pessimistic locking and some other minor bugs.
4.02 05.Sep.2002

Verified to be compatible with Delphi 7.

A couple more Delphi bugs fixed.

Search for "05.SEP.2002" in the unit to see what's new.

4.01 04.Jul.2002

A complete rewrite of the whole project.

lots of logic and code improvements and optimization.

Many new features, fixes and workarounds. Search for "2002" in the unit to find them.

New and updated help file.

3.04 14.Sep.2001

1. Several new properties added:

  vBetterADS, vADOVer, vOLEDBVer, vProvName, vProvVer, vDBMSName,

  vDBMSVer, vODBCVer, vODBCDrvName, vODBCDrvVer.

2. The EnableBCD property re-declared to be false by default to prevent unintended loss of

    precision.

3. A new utility function VariantsDiffer added to be used by the InternalPost method.

4. The InternalPost method was rewritten to support blobs, arrays, etc. and was also

    optimized for speed.

5. The InternalInitFieldDefs method was optimized for speed.

6. The CreateFields method was optimized for speed.

3.03 30.Aug.2001 The CorrectlyLocateRecord function was extended to support lookups.
3.02 26.Aug.2001

Added support for table lookups based on multiple fields and filtered RecordSets.

See the Lookup function.

3.00 11.Jul.2001

Added support for Delphi 6. This actually reflects the separation of some variants functions in the new Variants unit.

    Uses ActiveX {$IFDEF VER140}, Variants {$ENDIF};

 

The following properties were re-declared to reflect their new default values:

    Property CursorLocation default clUseClient;
    Property CursorType default ctStatic;
Thanks to Rüdiger Hoppe for that.

2.23 14.Jun.2001 The Locate method was further extended. Thanks to Peter van Logchem and to Thérèse Hanquet for their help and cooperation. See the MakeCloneFilter function in the Implementation section of the unit.
2.22 12.Jun.2001

A workaround added for an MS's BUG with ADO filters. See SetFilterText

2.21 09.Jun.2001

A minor fix added to the Locate method thanks to Peter van Logchem.

2.20 04.Jun.2001 A few new goodies implemented. Most notably a proper Locate method and some other minor tweaks and fixes. You can find them all by searching for 'JUN.2001' in the unit source.
2.19 19.Apr.2001

1. The MDAC26 conditional define was switched to be pre MDAC 2.6 compatible by default.

    Guess it makes more sense this way.

2. The JoinTest property was fixed after it had been broken in the previous version.

2.18 15.Apr.2001

The MasterChanged method overriden to retain the implemented dynamic properties of the underlying RecordSet when being used as the detail DataSet in a master/detail relation. You can thus have live joined ResultSets as detail DataSets. Without this the dynamic properties of the detail DataSet are lost after the 1st scroll of the master.

Thanks to Harry Quast for reporting.

2.17 13.Apr.2001 Fixed a minor bug in InternalPost.

    Data:=FieldData[AField.Index];
    If VarIsEmpty(Data) Then //13.APR.2001
        Data:=AField.Value; //13.APR.2001

Thanks to Harry Quast for reporting.

2.16 22.Mar.2001 Fixed a minor bug in InternalPost.
2.15 13.Mar.2001

Extended InternalInitFieldDefs to properly initialize the "Required" attribute of TFields.

  If ((adFldIsNullable And F.Attributes)=0) Then
    Attributes:=Attributes+[faRequired];
Extended CreateFields to correctly initialize the AutoGenerateValue property of Identity fields.
A help file created and added to the archive.
2.14 13.Mar.2001

Implemented the ADO RecordSet's GetString method.

Function GetString

2.13 10.Mar.2001

Added support for several new features introduced in MDAC 2.5 and later.

{$DEFINE MDAC26}

Procedure SaveToADOStream

Procedure LoadFromADOStream

Property FieldStatus

Property NamedParams

2.12 08.Mar.2001 FIXED a BUG in TBetterADODataSet.InternalPost
2.1 04.Mar.2001 Have not received a single issue report for more than a month now so I thought it's time to close the Beta stage.

FIXED a BUG of TCustomADODataSet.GetCanModify.

2.05 Beta

15.Feb.2001

A new condition check added in TBetterADODataSet.Resync:

If (AffectRecords=adAffectCurrent)And(Recordset.RecordCount=0) Then

  Exit;

This operation requires a current record so better do nothing rather than let ADO

throw an Exception.

2.04 Beta

14.Feb.2001

A new CancelBatch method was introduced to FIX

a BUG of TCustomADODataSet.CancelBatch.

Prior

N/A

See the source code (heavily commented) for details.

 

 

SOME ADO RESOURCES