================================= RELEASE NOTES FOR INFORMIX-CLI 2.80.0006.UC2 PRODUCT RELEASE DATE: 10 Jun 1998 ================================= TABLE OF CONTENTS I. Architecture II. System Requirements and Servers Supported III. Driver Managers IV. Files Installed V. Major Features in INFORMIX-CLI 2.8 VI. Troubleshooting INFORMIX-CLI for Windows VII. Known Product Deficiencies VIII. Fixed Customer-Reported Problems =============================== I. ARCHITECTURE INFORMIX-CLI uses a two-process architecture that is suitable for client/server networks. An INFORMIX-CLI application runs as one process on a PC or UNIX workstation and communicates across a network with an Informix database server that is on a host computer. =============================== II. SYSTEM REQUIREMENTS AND SERVERS SUPPORTED Windows Requirements -------------------- The system requirements for running INFORMIX-CLI in a Windows NT or Windows 95 environment are the following: * Windows NT version 3.51 or later or Windows 95 * 16 megabytes of available RAM, more is preferable * 8.5 megabytes of hard-disk space available before installation * Any TCP/IP protocol that is Windows Sockets 1.1-compliant * Microsoft Visual C++ compiler version 2.0 or later. INFORMIX-CLI does not support any other C compiler. UNIX Requirements ----------------- See the Machine Notes. Supported Informix Database Servers ----------------------------------- INFORMIX-CLI 2.8 supports the following Informix database servers: 5.x 7.x 8.x 9.x =============================== III. DRIVER MANAGERS Windows Driver Managers ----------------------- Version Shipped --------------- INFORMIX-CLI for Windows ships with the Microsoft Driver Manager Version 3.5. Problems when Using Version 3.0 ------------------------------- If other programs that you are using require you to use Microsoft Driver Manager Version 3.0, a buffer-size problem might occur with some of your INFORMIX-CLI applications. The problem can occur when Microsoft Driver Manager Version 3.0 doubles the total number of bytes available to return. The following steps provide an example of this problem: 1. A column name that you are retrieving consists of 15 characters (but you do not know this). 2. You call SQLDescribeCol() with cbColNameMax set to 10. 3. SQLDescribeCol() returns a value of 30 for pcbColName. SQLDescribeCol() should have returned a value of 15 for pcbColName. However, Microsoft Driver Manager Version 3.0 doubled pcbColName because it doubles the total number of bytes available to return when the output buffer is not large enough to hold all the data. 4. You reallocate the szColName buffer for 30 bytes. 5. You call SQLDescribeCol() with cbColNameMax set to 30. 6. SQLDescribeCol() returns a value of 15 for pcbColName. Microsoft Driver Manager 3.0 does not double the total number of bytes available to return when the output buffer is large enough to hold all the data. 7. If you do not compare the first pcbColName value to the second pcbColName value, then you do not have a problem. However, if you compare the two values and expect them to be the same, you will conclude that an error has occurred when, in fact, an error has not occurred. For information about how to install the correct version of Microsoft Driver Manager, see the README file for the Windows version of INFORMIX-CLI. UNIX Driver Manager ------------------- INFORMIX-CLI for UNIX ships with the INTERSOLV Driver Manager Version 3.02. =============================== IV. FILES INSTALLED Files on Windows ---------------- In the Windows environment, the installation procedure installs files into the following directories: Directory Description --------- ----------- INFORMIXDIR\bin finderr.exe and DLLs INFORMIXDIR\demo\clidemo Samples INFOMRIXDIR\gls\cm3 GLS charmap files and registry files INFORMIXDIR\gls\cv9 GLS code set conversion files INFORMIXDIR\gls\lc11 GLS locale files INFORMIXDIR\incl\cli Header files: infxcli.h, sql.h, sqlext.h INFORMIXDIR\lib Libraries INFORMIXDIR\msg clixmsg.pam INFORMIXDIR\msg\en_us\04e4 Message files and errmess.hlp INFORMIXDIR\release\en_us\04e4 Document notes and release notes WINDOWSSYSTEMDIR Common DLLs and files for the Microsoft Driver Manager Files on UNIX ------------- On UNIX, in addition to common ClientSDK distribution, the installation procedure installs files into the following directories: Directory Description --------- ----------- INFORMIXDIR/demo/cli Demos INFORMIXDIR/incl/cli Header files: infxcli.h, infxsql.h INFORMIXDIR/lib/cli Libraries for INFORMIX-CLI and for the INTERSOLV Driver Manager INFORMIXDIR/lib/esql Libraries for INFORMIX-CLI and INFORMIX-ESQL/C INFORMIXDIR/msg clixmsg.pam INFORMIXDIR/msg/en_us/0333 Message files for INFORMIX-CLI INFORMIXDIR/release/en_us/0333 Document notes, release notes, and machine notes Library Names on Windows ------------------------ On Windows, the installation procedure installs the following libraries into INFORMIXDIR\lib: iclit09a.lib iregt07b.lib Library Names on UNIX --------------------- On UNIX, the installation procedure installs the following libraries into INFORMIXDIR/lib/cli. In each Data Source specification section in the .odbc.ini file, set the Driver value to one of these library filenames: Filename Description -------- ----------- libifcli.a or libcli.a Static version for single (non-threaded) library libifcli.so or iclis09a.so Shared version for single (non-threaded) library libthcli.a Static version for multi-threaded library libthcli.so or iclit09a.so Shared version for multi-threaded library =============================== V. MAJOR FEATURES IN INFORMIX-CLI 2.8 Multithreading Support ---------------------- For a multithreaded application, INFORMIX-CLI latches an external handle (such as ENV, DBC, and STMT) while a thread is using the handle. If a concurrent thread tries to access an external handle that is already in use, the concurrent thread waits until the owning thread releases the handle. INFORMIX-CLI latches an external handle at the lowest possible level in the handle tree to achieve the greatest concurrency. Multiple Connection Support in Threads -------------------------------------- INFORMIX-CLI supports multiple database connections in the same or different threads. Connections are always explicit and are simultaneously active. Each connection operates within its own scope and does not interact with any other connection. Any thread can access handles that any other thread created. Any thread can support multiple connections simultaneously. SQLCancel() Support ------------------- INFORMIX-CLI supports SQLCancel() for multithreaded applications. For example, if you are executing a statement with hstmt1 in thread one, you can call SQLCancel() for hstmt1 from thread two to cancel the statement execution. Server-Only Connection ---------------------- INFORMIX-CLI supports a server-only connection option which lets you create a new database or drop an existing database. Named Pipes ----------- INFORMIX-CLI supports named pipes. Exclusive Use of a Database --------------------------- INFORMIX-CLI supports a connection option that lets you use a database exclusively. By default, INFORMIX-CLI allows shared use of a database. Row ID of the Last Inserted Row as a Statement Option ----------------------------------------------------- The row ID of the last inserted row is visible and retrievable as a statement option. DBCENTURY Environment Variable Support -------------------------------------- INFORMIX-CLI supports the DBCENTURY environment variable, which controls the setting of year values. DBCENTURY affects a CLI program only when a user issues a statement that contains a date or datetime string like the following one: insert into datetable ( datecol ) values ("01/01/01"); Depending on the value to which DBCENTURY is set on the client, the database server stores the date specified in this statement as either 01-01-1901 or 01-01-2001. On a Windows NT platform, the user user can set DBCENTURY directly into the registry under the following key: \HKEY_CURRENT_USER\Software\Informix\Environment\DBCENTURY Or a Windows NT or Windows 95 user can set the value of the DBCENTURY environment variable through Setnet32, which Informix ships as part of the I-Connect product. On a UNIX platform, the user can simply set the DBCENTURY environment variable. For information on how to set DBCENTURY, see the Informix Guide to SQL: Reference. =============================== VI. TROUBLESHOOTING INFORMIX-CLI for Windows Buy Microsoft ODBC SDK version 2.5 (or 3.0) or Dr. Deebee ODBC Tool kits to help you troubleshoot your application. =============================== VII. KNOWN PRODUCT DEFICIENCIES The following defects are known to exist in the current release of INFORMIX-CLI 2.8. The defects are listed by PTS (Problem Tracking System) number followed by a brief description. Technical support will be provided with patches and maintenance releases to fix these defects. PTS # Description ----- ----------- 82205 When it receives a PROCESS_DETACH message, CLI should clean up all active threads, but it does not because CLI may not get a THREAD_DETACH message for each active thread. 84697 CLI 2.8 crashes an Access client when it tries to fetch data from a row data type, whereas CLI 2.7 fails with error -11064. CLI 2.8 either cannot determine the return types of a query or the return types are inconsistent. 88735 When using the GLS QA_QA locale, a client can't fetch from table names with embedded spaces. =============================== VIII. FIXED CUSTOMER-REPORTED PROBLEMS The following defects were reported by customers and fixed. The defects are listed by PTS (Problem Tracking System) number followed by a brief description. PTS # DESCRIPTION ----- ----------- 73132 INFORMIX-CLI 2.50.TD2: The ODBC driver IVINF709.DLL is not recognizing the unique index in a table and, therefore, no updates are allowed from VB or MS-Access.