The purpose of these release notes is to make you aware of any special actions required to configure and use the Informix ODBC Driver on your computer. This file also describes new features and feature differences from earlier versions of this product and other Informix products, and how these differences affect current products. In addition, this file contains information about known bugs and their workarounds.
This release notes document is not intended to be all-inclusive; it should be used as an addendum to the Informix ODBC Driver Programmer's Manual , which provides thorough information about product features and behavior.
These release notes are written for the following audience:
Informix ODBC Driver, version 3.3, is a new Informix product that implements the Microsoft Open Database Connectivity (ODBC) version 3.0 standard. It implements the following functionality and features:
Informix ODBC Driver contains demonstration source programs and files that create, populate, and drop the odbc_demodb database. For information about the location of these example files, refer to the Introduction of the Informix ODBC Driver Programmer's Manual .
This section describes the known problems with this release of the Informix ODBC Driver and, if possible, shows how to work around these problems.
This bug causes ODBC Error S1000: [Informix][Informix ODBC Driver] An illegal character has been found in the statement.
Informix Servers can not accept literal strings that contain the newline (NL) character.
When autocommit mode is turned on, the driver should not issue commit messages when trying to do an explicit BEGIN WORK.
When using a non-ANSI, logging database with autocommit mode, the driver gives the following error when the BEGIN WORK command is commented out:
-524: Lock table can only be used within a transaction.
It occurs because all statements are executed outside of a transaction and rely upon the implicit transactions provided by theserver. This optimization greatly reduces network overhead when using autocommit. However, if you wish to explicitly control transactions using BEGIN WORK statements, you will find that they have no effect, as they will be immediately committed.
You can work around this problem by turning off autocommit mode, which is probably the best thing to do in this case if you wish to control transaction durations.Turning off OptimizeAutocommit causes a -11060 (Already in transaction)error.
On Windows NT platforms, when using the DSN setup utility, the test connection button does not take the latest modified value that you enter for 'SERVICE'. For example, if you create a new data source name using a valid server name, host name, service, etc., and then click the 'Test Connection' button, the message 'Test Connection was successful' appears. However, if you subsequently edit the data source name by clicking the 'Configure' button, select the Connection tab and modify the value of 'SERVICE' to one that does not exist for the server name, then click 'Test Connection', you will still receive the 'Test Connection was successful' message.
The workaround is to modify the value for 'SERVICE', then click the OK button to update the modified field in the registry. Then select the data source name and click the Test Connection button.
If you use Informix ODBC Driver against a Metacube decision support system that contains synonyms, columns from synonym tables are not visible from within the Data Warehouse Manager.
Specifically, if you upgrade to tables in another database from a Metacube 4.0 DSS system that contains synonyms, Informix ODBC Driver cannot see the columns in those synonym tables from within the Data Warehouse Manager.
On Windows platforms, an insert or an update of a row or collection element that is a VARCHAR type results in a crash. Inserting into or updating a varchar field within a row or a collection will overwrite one byte before the start of an internally allocated buffer, resulting in an inconsistent memory buffer header. This eventually results in a crash,at a later point in the free() C library function. This bug affects the row & collection demo programs, found in the product distribution directory: demo/cli/rccreate.c, rcselect.c and rcupdate.c
Informix ODBC Driver fails to populate ROWCOUNT property of RDORESULTSET object in a Visual Basic program unless a MOVELAST method is explicitly executed.
SQLSTATISTICS() does not work against an SE database server.
ODBC Driver gives error on disconnect when:
1) OptimizeAutoCommit option in the DSN is not checked and
2) The application has set the SQL_ATTR_AUTOCOMMIT connection flag to OFF and
3) Last call to SQLExecDirect for a non result generating SQL statement fails
If the application gets an error on disconnect while executing SQLDisconnect and all the above conditions are true, then the application should call SQLExecDirect with "Commit Work" or Rollback Work" depending on what is appropriate at that point in time. After calling SQLExecDirect the application should again call SQLDisconnect.
The following problems have been fixed since the Beta release of Informix ODBC Driver:
Microsoft's Visual Interdev crashes with an application error in devenv.exe when adding an Informix ODBC Driver connection to a project.
On Windows platforms, Informix ODBC Driver does not give the correct row found to VB RDO OPENRESULTSET ROWCOUNT
When an Informix ODBC Driver application executes a user-defined routine that raises an exception, the client's connection handle is no longer usable.
Informix ODBC Driver returns an SQLSTATE value of S1000 when deadlock is detected. The value should be 40001.
Querying a column defined as DATETIME, year-to-month, returns incorrect results.
In previous versions (ODBC2.8 and ODBC2.10) of our driver we allowed a disconnect even if there was an open transaction pending commitment. In ODBC 3.30, however, we follow the ODBC specification and return anerror on disconnect if there is an open transaction. To avoid this error ondisconnect the application must explicitly call SQLEndTran before callingSQLDisconnect when the SQL_ATTR_AUTOCOMMIT is set to OFF.