New Features and Bug Fixes in Version 5.04 of ODBCExpress
=========================================================


New Features
------------

New features introduced since the previous version:

1.  Some minor new functionality were added:
    - InTransaction property added to the THdbc component, which allows you to
      determine whether you are in manual commit mode or not.  This property
      always returns True between calls to StartTransact and EndTransact.
    - Clear method added to the TTarget sub-property of the TOEDataSet, which
      allows you to clear the TargetTable, PrimaryCols and IgnoreCols fields of
      this sub-property.
    - ConcurrencyType set to Read-Only by default when enabling the cache in the
      TOEDataSet.
    - LocateInsert functionality enabled for use together with the cache in the
      TOEDataSet as well.  This will allow you for example to force inserts to
      comply with the sort order when making use of the cache.


Bug Fixes
---------

Bug fixes included since the previous version:

1.  The following general problems are fixed:
    - A sizing problem with the EODBC detail error dialog and large fonts.
    - Some multi-select problems with certain property editors.
    - Some SQL Builder problems with generation of SQL statements.

2.  The following problems with the handle components are fixed:
    - The ColString method of the THstmt did not work for memo fields during
      deferred fetching.

3.  The following problems with the TDataSet descendants are fixed:
    - Writing to a field when not in edit or insert mode did not raise an
      exception.
    - Rolling back the transaction after calling the ApplyUpdates method caused
      the updated records to disappear from the cache.  ApplyUpdates will now
      automatically clear the updated records from the cache (similar to calling
      the CommitUpdates method in the BDE) only after the updates have been
      successfully applied.  If an exception is raised during the update process
      (and it's not handled by the OnUpdateError event), the updated records
      will not be cleared from the cache.
    - Parameter data structures weren't always correctly cleared, causing
      problems when re-using a parameter name in a new SQL statement.
    - A table name parse problem when TableName was not set and no table name
      was contained in the SQL statement.
    - A memory leak in the InternalDelete and InternalRefresh methods which
      occurred in certain scenarios.
    - A problem with cached updates which caused a range of problems with cached
      deletes, including returning incorrect "old values" for deleted records,
      "index out of bounds" errors and not passing the deleted records to the
      OnUpdateRecord event.
    - The TTarget fields were not cleared when setting the SQL, Table and
      StoredProc properties.
    - Connection exceptions were not handled in all cases when retrieving the
      SQL statement parameter information.
    - Zero dates were incorrectly converted to null dates for fields and
      parameters.
    - Default value code was incorrectly applied to updates as well, instead of
      only to inserts.
    - A problem where the TDataSet tried to access the active buffer when the
      TDataSet is closed.  This occurred in certain scenarios when using
      persistent fields at design time.

4.  The following problems with the visual components are fixed:
    - The TOEDateTime Width and ShowCheckBox properties were not set up with
      default values.


Comments
--------

Some important comments on the new version:

1.  Please report any problems experienced with this new version to
    support@odbcexpress.com so that it can be addressed as soon as possible.

2.  Apply both the Delphi 4 Update Packs #2 and #3.

3.  You have to install ODBCExpress 5.01 first before applying this service
    release.  See the file readme.txt for details.

4.  When installing ODBCExpress on certain Win95 and Win98 machines, you might
    find that the ODBCExpress package does not want to load into memory.  Make
    sure you have MDAC 2 or later installed on the machine.  If this is
    correctly installed and the problem still persists, then re-compile the
    ODBCExpress package.

5.  After installing the new version ODBCExpress, be sure to re-compile any
    other package which makes use of ODBCExpress units.  If any problems exist
    at design time after this, then re-compile the ODBCExpress package.


Acknowledgements
----------------

Thanks to everybody for all the suggestions and feedback which made this new
version of ODBCExpress possible.