Hello all,
Here is a MAJOR update to the odbc driver. Lots of missing
functionality has been added (see below). There is more to go, but
hopefully this fills in what was lacking, especially in the area of
retrieving data with SQLExtendedFetch and SQLGetData. I performed
extensive testing (I actually used "odbc test" for the first time).
But, even with all that testing, there might be some bugs, so please let
me know if you find any.
The source code will be in the archive soon, hopefully by tomorrow.
What's currently on our website is just the core odbc code for now. I
believe I have re-merged Thomas' changes for the Unix version correctly,
so everything should compile ok when it gets there.
Byron
version.txt date: 12/28/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.
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.