version.txt           date:  01/04/98             version:  06.40.0002
----------------------------------------------------------------------
This file describes changes and or fixes since the last update.

NEW FEATURES:

1. Truncation is now properly implemented when using SQLGetData and
   SQLFetch/ExFetch on character and binary data.  SQLGetData can be
   called multiple times and it will return the correct amount of
   data left.  When all of a column's data has been retrieved, it
   will return SQL_NO_DATA_FOUND, until the row is repositioned, which
   is what the spec. dictates.

2. SQLSetPos (for position/refresh only) is now supported, for both
   Declare/Fetch and regular cursor styles.  

3. Full support for column-wise (SQL_BIND_BY_COLUMN) and row-wise
   binding through the statement option SQL_BIND_TYPE.  

4. Rowsets greater than 1 are now supported (both Declare/Fetch and
   regular cursor styles) through SQLExtendedFetch.

5. SQLGetData fully supports rowsets greater than 1 in conjunction with
   SQLExtendedFetch, in both Declare/Fetch and regular cursors.

6. All SQLExtendedFetch directions are now supported for regular
   (Non-Declare/Fetch) cursor style, including SQL_FETCH_RELATIVE.
   For declare/fetch, SQL_FETCH_NEXT is now supported, with all
   directions coming soon!

7. All statement options are at least recognized.

8. All connection options are at least recognized.

9. Statement options can be set through a connection using
   SQLSetConnectOption().  These affect all statements on that connection
   and become the default for any future statements created on that
   connection.

10. In-Line Large objects are supported.  Previously, large objects could
    only be created through data-at-execution parameters.  This would have
    prevented applications not using data-at-exec parameters for
    LongVarBinarybinary data from creating any large object (possibly Borland).

11. Type Mapping now spans all ODBC-SQL types.

12. Binary/VarBinary now properly implemented through bytea.  As soon as
    Dave adds the patch for creating bytea with a precision, it will
    hopefully be right on with the spec.

13. Added an experimental driver option (for win32 only) to cause
    SQLCancel to actually call SQLFreeStmt(SQL_CLOSE) in the odbc Driver
    Manager.  This was necessary because some applications call SQLCancel
    and expect it to act like a SQLFreeStmt(CLOSE), which it should, but
    under Windows, the 3.0 driver manager does not recognize it and this
    results in "Invalid Cursor State" errors on some applications.

14. Reworked SQLGetInfo to handle truncation and NULL rgbInfoValuePtr.

15. Reworked SQLNativeSql, SQLColAttributes, SQLDescribeCol,
    SQLDriverConnect, SQLGetCursorName to handle buffer lengths and
    truncation properly.  This represents the remaining functions
    which had output buffer problems.

BUG_FIXES:

1. SQLRowCount returns -1 for unknown, instead of 0.

2. Handles 'Z' in send_function.

3. SQLGetTypeInfo only returns standard SQL types now (no more char2, char4
   stuff).  Each SQL type is now mapped to something.

4. bpchar's name is now "char", which was mandated by #3.

5. Put back in Thomas' changes for mylog() and qlog() with variable
   arguments and other things that got lost.

6. Fix for SQLBindParameter -- only SQL_LONGVARBINARY and SQL_LONGVARCHAR
   can be tested for data-at-exec parameters.

7. Handle NULL ptr in SQLGetInfo.

8. Fix for SQLNativeSql, SQLColAttributes, SQLDescribeCol,
   SQLDriverConnect, and SQLGetCursorName to handle NULL buffers.

9. Fix for SQLSetCursorName off by 1 problem.