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


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

New features introduced since ODBCExpress 4.51:

1.  Multiple Error Retrieval
    - ODBC drivers sometimes queue the error messages indicating the actual
      cause of an error after non-descriptive messages.  ODBCExpress now allows
      you to retrieve all the errors in the queue if necessary.
    - The EODBC exception now has First, Last, Next and Prev methods to scroll
      through the queue.
    - The EODBC.Detail dialog also has Next and Prev buttons to scroll through
      the queue.


Bug Fixes
---------

The following bugs, which existed in ODBCExpress 4.51, are now fixed in
ODBCExpress 4.52:

1.  THstmt Component
    - The prepared and executed flags were not reset by the close and terminate
      methods.
    - The table name case was not preserved by the NumRows method.
    - A "wrong number of parameters" error sometimes occurred when using the
      cursor library.
    - The Fetch methods suppressed the detection of certain soft errors.
    - Non-updatable columns were not ignored during updates (this does not
      include updatable columns involved in referential integrity constraints).

2.  TCustomOEDataSet Component
    - The stored procedure statement was not correctly generated if the stored
      procedure had no parameters.
    - The Hstmt.BindBookmarks sub-property was set to True by default and
      therefore did not correspond to the THstmt.BindBookmarks and the
      TCustomOEQuery.BindBookmarks properties.
    - A bookmark retrieval problem caused some data refresh problems (e.g. the
      3rd dataset involved in a 3 level master-detail relationship did not
      always refresh).
    - A row's deleted flag was set before the row was successfully deleted.
    - The result set was not successfully closed on closing the dataset.
    - An "invalid bookmark" error sometimes occurred directly after an update
      error occurred.
    - The LocateInsert functionality did not work correctly with multiple-field
      primary keys.
    - A non-descriptive exception was raised when the primary keys used by the
      LocateInsert method could not be detected. 
    - A pseudo column problem with the LocateInsert functionality sometimes
      caused errors such as "RowID not found".
    - Some dataset behaviour problems which existed in v4.51 were also fixed.

3.  TCustomOEQuery Component
    - The concurrency type is now set to a more acceptable "Values".
    - The cursor type is now automatically switched between static and
      keyset-driven, depending on whether the cursor library is used or not.


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

Thanks to Kyle Cordes and all the other ODBCExpress users for all the
suggestions and feedback which were instrumental in the development of this new
version of ODBCExpress.