Informix
Informix Online Documentation

RELEASE NOTES FOR

Informix ODBC Driver

Date: 06/13/00

Version: 3.32


Table of Contents

I. Overview of Release Notes
II. Database Server Names and Versions
III. New Attributes
A. Auto Freeing Of Cursors
B. Deferred Prepare
C. Fetch Array Size
D. Insert Cursor
E. Smart Large Object Automation
F. Stored Procedure Language Output Parameter Feature
IV. Known Problems
V. Fixed Problems


I. Overview of Release Notes

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 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, which provides thorough information about product features and behavior.

These release notes are written for the following audience:

Version 3.32 of Informix ODBC Driver has been tested with the following database server configurations:


II. Database Server Names and Versions

This manual might not reflect the latest names of Informix database servers. The following table lists the database server versions and their corresponding names.

Database Server Version Numbers Database Server Names
5.x

<vk>INFORMIX-OnLine and <vk>INFORMIX-<vk>SE

7.1x, 7.2x

<vk>INFORMIX-OnLine Dynamic Server and <vk>INFORMIX-<vk>SE

7.3x

Informix Dynamic Server

8.1x

<vk>INFORMIX-OnLine <vk>XPS

8.2x

Informix Dynamic Server with Advanced Decision Support and Extended Parallel Options

8.3

Informix Extended Parallel Server (XPS) or Informix Enterprise Decision Server

9.01, 9.1 through 9.13

<vk>INFORMIX-Universal Server

9.14

Informix Dynamic Server with Universal Data Option

9.2

Informix Dynamic Server 2000


III. New Attributes

A. Auto Freeing Of Cursors

When this feature is enabled, the memory allocated for the cursor in the server will be automatically freed right after the close of the cursor. This feature will only apply to the result set generating statements executed using SQLExecDirect.. In doing so, users will see an improvement in the network performance. The performance enhancement is due to savings of one network round-trip as no release message will be sent to the server to free the cursor memory on closing the cursor.

This feature can be turned on by setting the connection or statement attribute. The attribute is SQL_INFX_ATTR_AUTO_FREE. By default this is turned off.

B. Deferred Prepare

This feature works primarily with dynamic SQL Statements where the application does a series of SQLPrepare / SQLExecute. It attempts to optimize the number of round trip messages to the server, by not sending PREPARE SQL statement to the server until the application calls SQLExecute on that statement.

This feature can be turned on by setting the connection or statement attribute. The attribute is SQL_INFX_ATTR_DEFERRED_PREPARE. By default this is turned off.

C. Fetch Array Size

This is an optimization feature to reduce the network overhead for fetches involving multiple rows of simple large object data. In ESQL/C, the user setting FetArrSize triggers this optimization. Since there are already ways of retrieving multiple rows at a time defined in the ODBC standard, the implementation of this feature is limited to recognizing when the application is attempting to fetch multiple rows and adjusting the internal fetch array size and fetch buffer size accordingly. It will be transparent to the user that this is taking place except that they may query the driver on the maximum fetch array size setting for a given select statement.

D. Insert Cursor

The insert cursor feature has been extended for data types TEXT, BYTE, VARCHAR, LVARCHAR, and Opaque data types.

E. Smart Large Object Automation

The advantage of making the smart large object usage automatic is that the user doesn't have to learn another set of proprietary functions (ifx_lo functions) to access Informix smart large objects. The user will be able to use the standard ODBC API to access the smart large objects as one does in using other data types. This feature had one limitation in ODBC3.31 release i.e. It can only fetch BLOBs/CLOBs up to one MB in size. The size limitation has been fixed for this release (ODBC3.32)

F. Stored Procedure Language Output Parameter Feature

ODBC 3.32 adds support for the ODBC defined method of getting the return value from a database procedure. Specifically, this means that support for the parameter to the left of the equal sign in a procedure call escape sequence has been added to the driver. With this new feature, the host variable associated with that parameter is updated upon statement execution either through a SQLExecute or a SQLExecDirect.

In the ODBC definition of a procedure call escape sequence, there is only one return value; therefore, the following restrictions are placed on this feature:

Although procedures in Informix servers can return multiple values, the procedures used for this feature must return one value, although they may return multiple rows.

Although procedures in Informix servers can return multiple rows, only data from the first row will be placed in the host variable associated with the bound parameter.

If the first condition is not met, the parameter and its binding are ignored. The way to return multiple-value, multiple-row result sets from an Informix server continues to be to fetch the data as through it were the result columns of a select statement. This feature is designed not to cause problems with existing applications, which bind a column, or columns, and call SQLFetch or call SQLFetch and SQLGetData when accessing data through a procedure call. Therefore, no error or warning is generated when there is more than one row available to be returned. It is allowable to use either or both methods for retrieving the data from a stored procedure. A host variable can be bound as a parameter or as a column or both. If separate buffers are used, only the one bound as a parameter is updated upon statement execution, only the one bound as a column is updated upon a fetch. Unbound columns accessed through SQLGetData remain unaffected.


IV. Known Problems

This section describes the known problems with this release of the Informix ODBC Driver and, if possible, shows how to work around these problems.

  1. Bug 127885
    "CATASTROPHIC FAILURE" WHEN REQUERY AFTER ADO BEGINTRANS COMMITTRANS IF PASSING CONNECTION STRING WITH NO DSN

    Workaround: Use DSN instead of a DSN-less connection.

  2. Bug 120521
    SQLTABLES DOES NOT TREAT CATALOGNAME (DATABASE NAME) AS A PATTERN VALUE. IT ALWAYS TREATS IT AS AN ORDINARY ARGUMENT OR AS AN IDENTIFIER

  3. Bug 126817
    ODBC DRIVER FAILS TO ENLIST TRANSACTION WHEN USING DSNLESS CONNECTION WITH MTS

    Workaround: Use DSN instead of a DSN-less connection.


V. Fixed Problems

The following problems have been fixed since the 3.31.xC1 release of Informix ODBC Driver in ClientSDK 2.40:

  1. Bug 123847
    NULL POINTER EXCEPTION OCCURS IN MULTI-THREADED ODBC APPLICATION

  2. Bug 116177
    THREADED APPLICATION USING SEMAPHORE LOCKING IGNORES THE SEMAPHORE LOCKS WITH INFORMIX DRIVER,

  3. Bug 117497
    NO ROWS WILL BE RETURNED ON VB, IF THE QUERY IS AN OUTER JOIN AND ONE OF THE COLUMN CONTAINS NULL VALUES

  4. Bug 117715
    THE ODBC 3.30 IN SDK2.30.HC1 CORES WHEN A THREADED APPLICATION ON HP-UX 11.00 CREATES MORE THAN 5 THREADS, CONNECTING TO INFORMIX DATA SERVER

  5. Bug 121471
    MEMORY SHARPLY INCREASES TO AN EXCESSIVE LEVEL WHEN AN ADO APPLICATION USES CLIENT SIDE CURSORS AGAINST THE INFORMIX ODBC DRIVER

  6. Bug 121476
    JOIN SYNTAX WITH MSACCESS AND 3.3 DRIVER PRODUCES 201 SYNTAX ERROR

  7. Bug 118407
    CONVERSION PROBLEM OF UNDERSCORES IN TABLE NAMES USING THE INFORMIX 3.30 ODBC DRIVER

  8. Bug 127134
    PASSWORD AT RUNTIME DIDN'T WORK. ERROR: -982

  9. Bug 118594
    SELECT OF A INTERVAL COLUMN RETURNS ERROR - 2147217887 ( 80040E21 ) FROM A VB APPLICATION THAT USES ODBC 3.30 TO DO THE CONNECTION

  10. Bug 124752
    USING ADUSECLIENT IN ADO APPLICATION CAUSES TRUNCATION WITH DECIMAL COLUMNS

  11. Bug 122039
    MALFUNCTION OF MULTIPLE CONNECTIONS USING ONE DSN IN VB DAO APPLICATION

  12. Bug 122885
    FETCHING CHAR DATA INTO A SQL_C_BINARY BUFFER WILL TRUNCATE LAST CHARACTER

  13. Bug 122918
    CANNOT LINK STATIC ODBC DRIVER INTO A SHARED LIBRAR

  14. Bug 123785
    UPDATE OF A TEXT COLUMN USING LITERAL STRING ONLY WORKS WITH 9.X SERVERS

  15. Bug 125314
    SQLFREESTMT WITH SQL_RESET_PARAMS RETURNS 11067 FUNCTION SEQUENCE ERROR

  16. Bug 126214
    SCROLLABLE CURSORS FAIL TO HOLD LOCKS ON CERTAIN OPERATIONS WHICH INTERSOLV 3.11 DRIVER WOULD HOLD LOCK

  17. Bug 126559
    ODBC DRIVER REPORTS A SYNTAX ERROR WHEN USING CASE EXPRESSIONS

  18. Bug 126626
    ODBC DRIVER 3.31 DOESN'T HANDLE INSERTION OF LITTERAL STRING WITH DOUBLE APOSTROPHE IN A TEXT COLUMN

  19. Bug 126889
    USING SQLSETPOS FOR UPDATE AGAINST A TABLE ALIAS PRODUCES 201 SYNTAX ERROR

  20. Bug 128208
    WHILE DOING DROP TABLE / CREATE TABLE IN A SEPARATE THREAD PROGRAM HANGS.

  21. Bug 128244
    SYNTAX ERROR TRYING TO EXECUTE A QUERY INVOLVING A COLLECTION DERIVED TABLE

  22. Bug 120963
    ODBC RETURNS INCORRECT RESULTS QUERYING A COLUMN DEFINED AS A DISTINCT TYPE DATETIME YEAR TO DAY

  23. Bug 119547
    INSERT CURSORS FAIL W/-597 ERROR WHEN INSERTING NULL FLOAT VALUES

  24. Bug 117331
    COULD NOT EXECUTE PROCEDURE FROM DISTRIBUTE MODE IF PROCEDURE NAME HAS AN '_' FOR EXAMPLE 'PR_1'

  25. Bug 117824
    REPORTED LENGTHS OF LVARCHAR COLUMNS ARE INCORRECT AND INCONSISTENT

  26. Bug 121483
    NOT POSSIBLE TO USE SUBSTRING FUNCTION IN A SELECT STATEMENT

  27. Bug 121521
    NOT POSSIBLE TO FETCH ZERO LENGTHED LVARCHAR VALUES

  28. Bug 120623
    ARRAY INSERT FAILS FOR ARRAY SIZE > 1 WITH ERROR -11020 COMMUNICATION LINK FAILURE

  29. Bug 123608
    POSITIONING USING SQLSETPOS ON A FORWARD ONLY CURSOR MAY CAUSE INFINITE LOOP

  30. Bug 125853
    USING A CONNECTION THAT WAS CREATED ON SECONDARY THREAD IN THE MAIN UI THREAD CRASHES

  31. Bug 128402
    THE ODBC DRIVER WILL SEGV IF THE CONNECTION IS BROKEN BETWEEN FETCHES

  32. Bug 129027
    CANNOT INSERT MORE THAN 32K THROUGH A BOUND VARIABLE WITH AN SQL TYPE OF SQL_INFX_UDT_X: ERROR -11023: RIGHT STRING TRUNCATION

  33. Bug 130673
    MEMORY LEAK - SQLFREESTMT DOESN'T RELEASE MEMORY AFTER SQLCOLUMNS



Copyright © 2000, Informix Software, Inc. All rights reserved