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


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

1.  The ODBC Cursor Library is implemented for the 32bit version of
    ODBCExpress.  If your ODBC driver only supports Forward_Only cursors, you
    are now able to use scrollable cursors with ODBCExpress.  If your ODBC
    driver wasn't able to do it before, you can now use scrolling functions
    such as FetchNext and FetchPrev, retrieve multiple rows at a time and do
    positional updates and deletes.

2.  Positional updates have been improved.  If your ODBC driver doesn't
    support positional updates via ODBC functions, ODBCExpress will
    automatically generate update statements to perform the positional
    updates.

3.  Also for the 32bit version of ODBCExpress, a design time SQL editor for
    the SQL property of the THstmt class was added.  Now you can edit your
    SQL statement at design time, yet still have your SQL statement stored as
    a single Delphi string of up to 2GB characters.

4.  For the 16bit version, the method BindInteger and properties ColInteger
    and CellInteger were added.  For the 32bit version, the method
    BindLongint and properties ColLongint and CellLongint were added.

5.  The EODBC exception class has a new detail error dialog, which can be
    used to display a custom error message when an ODBC error occurs.  The
    dialog has a Detail button, which will display the ODBC error message,
    ODBC error state and native database error when clicked.

6.  The SQL statement parser was modified to allow you to specify a colon as
    part of your SQL statement.  A single colon ":" in a SQL statement is
    treated as a parameter indicator, while a double colon "::" will be
    treated as a single colon in the SQL statement.


Bug Fixes
---------

1.  In the 16bit version of ODBCExpress, when trying to update some fixed
    length data type fields, a "data too long" or "incorrect data length"
    error occurred.  The positional update now works correctly for all data
    types.

2.  When retrieving a large text field from the database as a string, extra
    characters from a previous query were sometimes visible at the end of the
    string.  ColString and CellString now works fine for large text fields.

3.  Assigning a new memory stream to the ColMemory property of the THstmt
    class had no effect.  Assigning values to ColMemory now works correctly.

4.  When deleting a THenv or THdbc class from a form or data module, any
    THdbc class assigned to the THenv or any THstmt class assigned to the
    THdbc gave an access violation.  THenv and THdbc classes can now be
    deleted without influencing the THdbc or THstmt classes.

5.  Some other small bugs not documented here have been fixed during the
    development of version 1.21.