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.