READ ME FIRST FOR INFORMIX CLIENT PRODUCTS VERSION 2.30 FOR MICROSOFT WINDOWS ENVIRONMENTS DATE: 5/14/1999 OVERVIEW This sheet provides important information that you should read before you install Informix Client SDK, Version 2.3. This sheet is an addendum to the Informix Client Products Installation Guide for Microsoft Windows Environments. This sheet includes notes on: - Removing Informix Windows 95 Registry Entries - Changes in the Names of Message Files in Client SDK 2.01 and Later - Client SDK File Size Increase - DSN Migration Utility for the Informix ODBC Driver REMOVING INFORMIX WINDOWS 95 REGISTRY ENTRIES When you uninstall Informix products from a Windows 95 computer, the Uninstall program might not remove Informix-database-related entries from the Registry. If you then install Client SDK 2.30, you might encounter an unhandled exception or access violation in the isqlt09a.dll library when you use the ILOGIN demo program. To avoid this problem, use regedit to manually remove all Informix-related Registry entries after you uninstall Informix products. Install Client SDK 2.30 only after you have restored the Registry. CHANGES IN THE NAMES OF MESSAGE FILES IN CLIENT SDK 2.01 AND LATER The shared and static libraries in client APIs refer to message files in the directory $INFORMIXDIR/msg on UNIX and %INFORMIXDIR%\msg on Windows 32-bit operating systems. Informix changed the names of several message files in client APIs, beginning with Version 2.01, to avoid conflict with the server versions of those files. For example, a file previously named sqli.iem is now named csqli.iem; the libraries in the new client APIs refer to csqli.iem. After you install Versions 2.01 or later of Client SDK or Connect on either Windows 32-bit operating systems or UNIX platforms, previously compiled applications might encounter an error if all of the following circumstances apply: - An application is linked with the static libraries of a client API previous to Version 2.01. - The client API you installed is in a different directory from the one containing the pre-vious client API (pre-2.01). - The INFORMIXDIR environment variable used by the application has been changed to point to the directory containing only the new client API. In these conditions, the application looks for message files by their former names: for example, sqli.iem. However, the directory with the new client API has those files by their new names: for example, csqli.iem. You can use any one of the following workarounds to avoid the "file not found" error: - Link the application with the shared libraries from the pre-2.01 client API. - Install the new client API in the same directory in which you installed the pre-2.01 client API and do not change INFORMIXDIR. - Install the pre-2.01 client API in the same directory in which you want to install the new client API; install the pre-2.01 client API first. - Relink your application with the static libraries from the new client API. For all message subdirectories within the directory that contains just the new client APIs, make copies of each of the following files and then rename the copies as indicated in the following table. Old New als.iem cals.iem cals.iem ccals.iem csm.iem ccsm.iem css.iem ccss.iem eami.iem ceami.iem isam.iem cisam.iem miapi.iem cmiapi.iem mls.iem cmls.iem mls2.iem cmls2.iem nals.iem cnals.iem nerm.iem cnerm.iem net.iem cnet.iem netsrv.iem cnetsrv.iem rds.iem crds.iem security.iem csecure.iem shell.iem cshell.iem sql.iem csql.iem sqli.iem csqli.iem util.iem cutil.iem xopen.iem cxopen.iem xps.iem cxps.iem itoxmsg.pam citoxmsg.pam optical.iem coptical.iem errmsg.txt cerrmsg.txt Rename these files in each message subdirectory. This includes, at least, the US English subdirectory %INFORMIXDIR%\msg\en_us\04e4 on Windows 32-bit operating systems and $INFORMIXDIR/msg/en_us/0333 on UNIX. If there are message subdirectories for other languages you installed, you should do the same for them: for example, %INFORMIXDIR%\msg\fr_fr\04e4 on Windows 32-bit operating systems and $INFORMIXDIR/msg/fr_fr/0333 on UNIX. CLIENT SDK FILE SIZE INCREASE Because of several new locale files, the size of the 2.30 Client SDK and Connect UNIX products has increased. For instructions on removing unwanted locale files from the GLS Library, see Appendix A, "Managing GLS Files," of Informix Guide to GLS Functionality, Version 9.1. This guide is available on the Answers OnLine CD-ROM and on the web at Answers On Line DSN MIGRATION UTILITY FOR THE INFORMIX ODBC DRIVER To use the DSN migration utility dsnmigrate.exe that accompanies Informix ODBC Driver, create a text file in the .ini file format; then select the names and values of the DSN (data source name) you want to migrate or restore. The migration log file is located in %INFORMIXDIR%\release\dsnMigr.log. The restore information is located in %INFORMIXDIR%\release\dsnMigr.sav. The following restrictions apply: - A user DSN can be used or migrated only by the user who created that DSN. - A system DSN can be used by all users of the system. - A file DSN requires write privileges to the file. SETTING UP AND USING THE DSN MIGRATION UTILITY Follow these steps to set up and run dsnmigrate.exe. 1. Open your text editor and create a text file with an .ini extension. 2. Create a section in the file for each DSN type to be modified. 3. On a separate line in each section, specify each DSN as follows: DSNname=drivername Drivername must be one of the following values: - INFORMIX 2.80 32 BIT - INFORMIX 3.30 32 BIT - restore 4. To run dsnmigrate.exe, use the following command: dsnMigrate -f filename Replace filename with the name of the text file you created in Step 1. EXAMPLES: The following examples show how to format dsnmigrate.exe files: [User DSN] Test1=INFORMIX 2.80 32 BIT Test2=INFORMIX 3.30 32 BIT In this example a DSN called Test1 will migrate to Informix CLI Driver Version 2.8, and a DSN called Test2 will migrate to Informix ODBC Driver Version 3.30. Both DSNs will be restricted to the user who created them. [System DSN] Test3=INFORMIX 3.30 32 BIT Test4=restore In this example, a DSN called Test3 will migrate to Informix ODBC Driver Version 3.30, and a DSN called Test4 will migrate to its original DSN. Both DSNs can be used by all users of the system. The user who migrates these system DSNs must have permission to modify ODBC system DSN registry entries. [File DSN] C:\Program Files\ODBC\Data Sources\test5.dsn=INFORMIX 3.30 32 BIT C:\Program Files\ODBC\Data Sources\test6.dsn=INFORMIX 3.30 32 BIT In this example, two file DSNs called test5.dsn and test6.dsn will migrate to Informix ODBC Driver Version 3.30. ====================================================================== ================================= RELEASE NOTES FOR INFORMIX-ESQL/C, version 9.21 Informix Client SDK 2.30 DATE: May 1999 ================================= TABLE OF CONTENTS ================= I. Overview of Release Notes II. New Features A. New integer data types B. Century Settings on a Per-Call basis C. New SQLSTATE Setting D. Support of Multiplexed Connections on Windows E. Decimal Precision for FLOAT and SMALLFLOAT Conversions to DECIMAL Data Type III. Example Files IV. Known Problems A. String and Varchar Host Variables B. Running setnet32 with the Silent Option (Windows only) V. Fixed Problems +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ OVERVIEW OF RELEASE NOTES ========================= The purpose of these release notes is to make you aware of any special actions required to configure and use INFORMIX-ESQL/C 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 workarounds, where possible. This release notes document is not intended to be all-inclusive; it should be used as an addendum to the INFORMIX-ESQL/C Programmer's Manual which provides thorough information about product features and behavior. These release notes are written for the following audience: o System administrators who install Informix database servers o Database administrators who control access to Informix databases o Developers who write applications using INFORMIX-ESQL/C. NEW FEATURES ============ This section contains brief descriptions of new features of release 9.21. NEW INTEGER DATA TYPES ---------------------- This release includes new integer data types that automatically map correctly for 32-bit and 64-bit platforms: int1, int2, int4, mint, mlong, MSHORT, and MCHAR. CENTURY SETTINGS ON A PER-CALL BASIS ------------------------------------ The following new functions for date conversion allow you to specify the century setting for 2-digit dates on a per-call basis: o ifx_defmtdate() o ifx_strdate() o ifx_dtcvasc() o ifx_dtcvfmtasc() o ifx_dttofmtasc() NEW SQLSTATE SETTING -------------------- The new SQLSTATE setting, IXOO1, indicates a failure of the GET DIAGNOSTICS statement. SUPPORT OF MULTIPLEXED CONNECTIONS ON WINDOWS --------------------------------------------- Multiplexed connections to the database server are now supported on Windows as well as UNIX. DECIMAL PRECISION FOR FLOAT AND SMALLFLOAT CONVERSIONS TO DECIMAL DATA TYPE --------------------------------------------------------------------------- The decimal precision has been increased for conversions from FLOAT and SMALLFLOAT to the DECIMAL data type, as follows. --------------------------------------------------------------------------- | From | To | Old Precision | New Precision | |-------------------------------------------------------------------------| | SMALLFLOAT | DECIMAL | 8 | 9 | |-------------------------------------------------------------------------| | FLOAT | DECIMAL | 16 | 17 | --------------------------------------------------------------------------- The change in the decimal precision might also be visible when floating- point data is converted to ASCII text. If a floating-point value fits within the range of a DECIMAL data type, the database server first internally converts the floating-point data to a DECIMAL value. In ESQL/C applications, calls to the deccvflt() or deccvdbl() function now result in an extra decimal digit in the return value. The rationale for this change is that when a binary IEEE 4-byte floating- point value is converted to the closest eight-digit decimal number, or an 8-byte floating-point value is converted to the closest sixteen-digit decimal number, it is not always possible to uniquely recover the binary number from the decimal one. However, if nine decimal digits are used for the 4-byte floating-point value (and seventeen decimal digits for the 8- byte floating-point value), then converting the decimal value to the closest binary number will recover the original floating-point number. EXAMPLE FILES ============= INFORMIX-ESQL/C includes source code files for many of the examples in the INFORMIX-ESQL/C Programmer's Manual. The installation process copies these source code files into the following directories forUNIX and Windows platforms: $INFORMIXDIR/demo/esql(UNIX) INFORMIXDIR\demo\esqldemo(WINDOWS) For more information about the example files for INFORMIX-ESQL/C, see the Introduction to the INFORMIX-ESQL/C Programmer's Manual. KNOWN PROBLEMS ============== This section describes the known problems with this release of INFORMIX- ESQL/C and explains how to work around these problems, if possible. STRING AND VARCHAR HOST VARIABLES --------------------------------- A NULL varchar or string host variable and an empty varchar or string host variable have the same representation: '\0'. For fetching into a varchar or string host variable, an indicator variable must be used to distinguish between the two. If the value is '\0' and the indicator variable is -1, then the host variable is NULL. If the value is '\0' and the indicator variable is not -1, then the host variable is an empty varchar or string. The same thing applies to an insert. If the varchar or string host variable has value '\0' and the indicator variable is set to -1, then NULL will be inserted. On the other hand, if the indicator variable is set to some value greater than or equal to 0, then an empty string is inserted. The risnull() function cannot tell the difference between an empty varchar or string host variable and a NULL varchar or string host variable. RUNNING SETNET32 WITH THE SILENT OPTION (WINDOWS ONLY) ------------------------------------------------------ The setnet32 program can be run silently in the background without bringing up it's Windows graphical interface. This is done by loading the configuration file from a previously stored .nfx file. The format to load from a DOS command line is as follows: setnet32 -l savedcfg.nfx To create a .nfx file, run setnet32 and make the required changes to the configuration file. From the main environment tab, choose the "Save to File" option. This will create or allow you to save the configuration information to a file at a location of your choice with the extension *.nfx. You can, of course, choose the filename for the configuration to be saved. This is the same .nfx file that you can load silently through the setnet32 silent interface, as noted above. FIXED PROBLEMS ============== The following problems have been fixed since the 9.21 release: --------------------------------------------------------------------------- | 103549 | Fetches are a lot slower in 9.2 as compared to 7.14. | |-------------------------------------------------------------------------| | 103241 | Fetching varchar variable into char host variable is | | | slower in 7.2x than 7.1x. | |-------------------------------------------------------------------------| | 99899 | The function byfill() must have a prototype. | |-------------------------------------------------------------------------| | 104487 | Free releases wrong statement when OPTOFC is on and | | | close is missing. | |-------------------------------------------------------------------------| | 89993 | Float and double types are returned as decimal when an | | | NT client is communicating with an UNIX server or an | | | UNIX client is communicating with an NT server. | |-------------------------------------------------------------------------| | 106847 | Client hangs in receiving the info from the describe | | | statement after running out of memory.. | |-------------------------------------------------------------------------| | 104486 | ESQL does not pass defines with the -D option on for | | | the C++ compiler. | |-------------------------------------------------------------------------| | 104759 | Get erroneous error 254 when multiple SQL statements | | | are PREPAREd as a single statement and the arguments | | | contain 2 consecutive '-'s | |-------------------------------------------------------------------------| | 105923 | Using a host variable of a subscripted structs results | | | in an erroneous syntax error of -33051 | |-------------------------------------------------------------------------| | 107367 | #line directive is missing sometimes when compiling | | | with the -thread option | |-------------------------------------------------------------------------| | 108020 | select varchar(n) from client row (a varchar(n)), | | | expect null string, get string of n blanks | |-------------------------------------------------------------------------| | 105530 | When the TZ environment variable is set to some | | | timezone +/- offset where offset is not in whole unit | | | of hours, the rtoday() function delays returning the | | | result | |-------------------------------------------------------------------------| | 78743 | The implicit connection cannot be created while there | | | is an open explicit connection, whether active or | | | dormant. User will get error message -1811 instead of - | | | 1803. | |-------------------------------------------------------------------------| | 103262 | Using #ident in declare section causes #line number to | | | be blank (""), which causes assertion failure/core dump | | | in C compile | --------------------------------------------------------------------------- ================================= RELEASE NOTES FOR Informix ODBC Driver, version 3.3 Client SDK 2.30 DATE: May 1999 ================================= TABLE OF CONTENTS ================= I. Overview of Release Notes II. New Features III. Example Files IV. Known Problems V. Fixed Problems 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 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: o System administrators who install Informix database servers o Database administrators who control access to Informix databases o Developers who write applications using the Informix ODBC Driver NEW FEATURES ============ 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: o Data Source Name (DSN) migration o On UNIX, a Driver Manager Replacement Module, which supports compatibility between ODBC 2.x applications and the ODBC 3.3 driver o On Windows platforms, Microsoft Transaction Server (MTS), which is an environment that lets you develop, run, and manage scalable, component-based Internet and intranet server applications. MTS performs the following tasks: - Manages system resources, including processes, threads, and database connections, so that your application can scale to many simultaneous users - Manages server component creation, execution, and deletion - Automatically initiates and controls transactions to make your application reliable - Implements security so that unauthorized users cannot access your application - Provides tools for configuration, management, and deployment o If you are using Informix Dynamic Server with Universal Data Option, extended data types are supported, including rows and collections o Long identifiers o Limited support of bookmarks o GLS data types o Extensive error detection EXAMPLE FILES ============= 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. 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. Bug 109794 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. Bug 110836 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. Bug 110797 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. Bug 111304 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. Bug 111483 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 Bug 108697 Informix ODBC Driver fails to populate ROWCOUNT property of RDORESULTSET object in a Visual Basic program unless a MOVELAST method is explicitly executed. Bug 108138 SQLSTATISTICS() does not work against an SE database server. Bug 112041 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 WorkAround: 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. FIXED PROBLEMS =============== The following problems have been fixed since the Beta release of Informix ODBC Driver: Bug 108517 Microsoft's Visual Interdev crashes with an application error in devenv.exe when adding an Informix ODBC Driver connection to a project. Bug 108775 On Windows platforms, Informix ODBC Driver does not give the correct row found to VB RDO OPENRESULTSET ROWCOUNT Bug 109768 When an Informix ODBC Driver application executes a user-defined routine that raises an exception, the client's connection handle is no longer usable. Bug 110762 Informix ODBC Driver returns an SQLSTATE value of S1000 when deadlock is detected. The value should be 40001. Bug 111505 Querying a column defined as DATETIME, year-to-month, returns incorrect results. Change in Disconnect with Open Transaction 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. ================================= RELEASE NOTES FOR INFORMIX-OBJECT INTERFACE FOR C++ VERSION 2.61 DATE: 5/14/99 ================================= Table Of Contents I. Overview of Release Notes II. Informix Database Server Compatibility III. Installing Object Interface for C++ IV. New Features V. C++ Compiler Interpretation of Long Doubles VI. Known Problems VII. Fixed Problems +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ OVERVIEW OF RELEASE NOTES ========================= The purpose of these release notes is to make you aware of special actions that are required to install, configure, and use INFORMIX-Object Interface for C++ 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. These release notes are not intended to be all-inclusive; they should be read as an addendum to the "INFORMIX-Object Interface for C++ Programmer's Guide," which provides comprehensive information about product features and product behavior. These release notes are for system administrators who install Object Interface for C++ and for developers who use Object Interface for C++ to create client applications. INFORMIX DATABASE SERVER COMPATIBILITY ====================================== Informix has simplified its product offerings. References for previous product names apply equally to the new configurations, as indicated in the following table. --------------------------------------------------------------------------- | Previous Product Offering | New Product Offering/Configuration | |-------------------------------------------------------------------------| | INFORMIX-OnLine Dynamic Server | Informix Dynamic Server | |-------------------------------------------------------------------------| | INFORMIX-Universal Server | Informix Dynamic Server with | | | Universal Data Option | |-------------------------------------------------------------------------| | INFORMIX-OnLine Extended | Informix Dynamic Server with | | Parallel Server | Advanced Decision Support and | | | Extended Parallel Options | |-------------------------------------------------------------------------| | INFORMIX-OnLine Workgroup Server | Informix Dynamic Server, Workgroup | | | Edition | |-------------------------------------------------------------------------| | INFORMIX-OnLine Workstation | Informix Dynamic Server, Developer | | | Edition | --------------------------------------------------------------------------- Version 2.61 of Object Interface for C++ has been tested with the following database server configurations: o Informix Dynamic Server, Version 7.3x o Informix Dynamic Server, Workgroup Edition, Version 7.3x o Informix Dynamic Server with Advanced Decision Support and Extended Parallel Options, Version 8.2x o Informix Dynamic Server with Universal Data Option, Version 9.14.UCx (UNIX) and 9.14.TCx (Windows NT) INSTALLING OBJECT INTERFACE FOR C++ =================================== Object Interface for C++ is provided as a component of Informix Client Software Developer's Kit Version 2.30. Refer to the "Informix Client Products Installation Guide" for your platform for instructions for installing the Client SDK. NEW FEATURES ============ There are no new features supported in this release. C++ COMPILER INTERPRETATION OF LONG DOUBLES =========================================== LIBC++ provides data type conversion functions in the value interface ITConversions to enable conversion of C++ type long double. The intent is to permit fetching floating point values into C++ long double variables. However, the Client SDK does not currently allow for conversion of long double values into Informix decimal or float types. Thus, LIBC++ applications should always ensure that any floating literal passed to ITConversions::ConvertFrom(long double val) is within the double range. Otherwise, ConvertFrom(long double val) returns FALSE for value objects that contain SQL MONEY, FLOAT and SMALLFLOAT values. Object Interface for C++ is written with the assumption that a floating literal without the ANSI C++ specified suffixes l or L (example: 12.988 instead of 12.988L) assigned to a long double variable will be treated by the C++ compiler as a long double. This assumption agrees with the ANSI C++ Draft Standard (Doc No: X3J16/94-0027, WG21/N0414, 25 January 1994), which states that the type of a floating literal is double unless explicitly specified by a suffix. The suffixes f and F specify float; the suffixes l and L specify long double. Thus, the suffix l or L must be applied to a floating literal in order for it to be interpreted by the C++ compiler as a long double value. Different versions of the Sun C++ compiler applied the ANSI C++ standard as it existed at the time of the compiler development and release. For example, Sun C++ 4.1 conforms to the ANSI standard described above, whereas pre-4.1 Sun C++ compilers always treated all floating literals, with or without the l and L suffixes, as long double values if they were assigned to a long double variable. The following C++ code example demonstrates assignment of a floating literal to a long double variable, casting to a double, and comparison between the double and long double: long double d = 12.988; double dasd = (double) d; if( dasd == d ) return 0; else return 1; The following table compares support for the ANSI C++ draft standard referenced above among several versions of Sun C++ compilers by showing how the different compiler versions evaluated the expression (dasd ==d). If the expression evaluates to FALSE, the values are not equal. ---------------------------------------------------------------------------- | Sun C++ Compiler Versions | Evaluation of (dasd == d) | |--------------------------------------------------------------------------| | Sun C++ 4.0 (Dec 1993) | FALSE (values are not equal) | |--------------------------------------------------------------------------| | Sun C++ 4.0.1 (Jul 1994) | FALSE (values are not equal) | |--------------------------------------------------------------------------| | Sun C++ 4.1 (Oct 1995) | TRUE (values are equal) | ---------------------------------------------------------------------------- KNOWN PROBLEMS ============== This section describes the known problems with this release of Object Interface for C++ and where possible shows how to work around these problems. Bug 83761 Platform: all Compiler: all The Object Interface for C++ fails to return a set of UDTs when using ITRoutineManager. This is a duplicate of bug 95487. Bug 100947 Platform: UNIX: SEQUENT, UNIX: DG-INTEL Compiler: Edinburgh Portable Compiler (EPC) EC++ 5.0 Test Operation/String/String01 produces a segmentation violation on several platforms. The call to the ifx_gl_lc_errno routine in the Trim() routine does not get initialized for GLS {ifx_gl_init()}. This bug is believed to be a C++ compiler bug and has been escalated to the compiler vendor. Bug 101671 Platform: all Compiler: all The ITLocale::ConvertDate() method returns incorrect results. Bug 101676 Platform: all Compiler: all The ITLocale::ConvertDatetime() method returns incorrect results. Bug 103530 Platform: all Compiler: all ITValue::FromPrintable("ROW(NULL):: where is the ordinal position in the result set. For example, "SELECT col1, col2+col3 FROM table1" produces the column names "col1" and C2. SQLColAttributes/SQL_COLUMN_NAME returns for result columns that are expressions. Use this option for applications that cannot handle column names. WorkArounds=256 Forces SQLGetInfo/SQL_ACTIVE_CONNECTIONS to be returned as 1. WorkArounds=512 To prevent ROWID results, this option forces the SQLSpecialColumns function to return a unique index as returned from SQLStatistics. WorkArounds=65536 This option strips trailing zeros from decimal results. WorkArounds=131072 This option turns all occurrences of the double quote character ("") into the grave character (`). Some applications always quote identifiers with double quotes. Double quoting causes problems for data sources that do not return SQLGetInfo/SQL_IDENTIFIER_QUOTE_CHAR = . WorkArounds=1048576 Some applications incorrectly specify a precision of 0 for character types when the value will be SQL_NULL_DATA. This option overrides the specified precision and sets the precision to 256. WorkArounds=2097152 Some applications incorrectly specify a precision of -1 for character types. This option overrides the specified precision and sets the precision to 2000. WorkArounds=4194304 For PowerBuilder users, this option converts all catalog function arguments to upper case unless they are quoted. WorkArounds=536870912 This option allows for re-binding parameters after calling SQLExecute for prepared statements. WorkArounds2=2 Some applications incorrectly specify the ColumnSize/ DecimalDigits when binding timestamp parameters. This workaround causes the driver to ignore the ColumnSize/DecimalDigits specified by the application and use the database defaults instead. =============================== VII. Microsoft Access and Visual Basic Users (Windows-only) We recommend that users of Microsoft Access and Visual Basic add the value pair WorkArounds=25 (1+8+16) for each data source they use with Access and Visual Basic. For data sources that support a single connection, add the line WorkArounds=29 (1+4+8+16). =============================== VIII. Notes and Known Problems PTS Description ------------------------ 106467 ODBC CONNECTION FROM VISUAL BASIC APPLICATION USING RDO WITH CURSORDRIVER = RDUSECLIENTBATCH RESULTS IN TEXT/BYTE COLUMNSIZE REPORTED AS 0 102913 MICROSOFTS INTERDEV HAS PROBLEMS INSERTING WITH INTERSOLV ODBC DRIVER 94335 SQLDESCRIBECOL RETURNS SQL_NULLABLE_UNKNOWN FOR ALL COLUMN TYPES SQLColAttribute(s) ------------------ The column attributes 1001 and 1002, which were assigned as INTERSOLV specific attributes, were inadvertently used as system attributes by the Microsoft 3.0 ODBC implementation. Applications using those attributes should now use 1901 and 1902 respectively. SQL_C_NUMERIC ------------- Because of inconsistencies in the ODBC specification, users attempting to use SQL_C_NUMERIC parameters should set the precision and scale values of the corresponding structure, and the descriptor fields in the APD. Error Messages ------------------ Restriction: Some INFORMIX error messages may contain more than one error. It is unclear whether all errors displayed will be valid. Additional Notes and Known Problems on UNIX ------------------------------------------- ODBC Driver Manager (UNIX-only) ------------------------------- If you want to use a driver manager, the driver requires the 3.0 version of the ODBC Driver Manager (libodbc.xx). You can buy the Driver Manager from a third party vendor who develops ODBC Driver Manager for the required UNIX platform. ODBC Driver Manager On Solaris (UNIX-only) ------------------------------------------ For Solaris, the ODBC Driver Manager is not linked with libnsl.so. Most ODBC drivers require that this library be initialized before the drivers are invoked. To insure maximum ODBC compatibility, applications should link to libnsl.so. SQLDriverConnect (UNIX-only) ---------------------------- SQLDriverConnect using options other than SQL_DRIVER_NOPROMPT is supported only on systems that include the Motif library. Additional Notes and Known Problems on Windows ---------------------------------------------- ODBC Driver Manager (Windows-only) ---------------------------------- ODBC 3.x drivers require the 3.0 or 3.5 version of the ODBC Driver Manager (ODBC32.DLL and ODBCCP32.DLL). The INFORMIX-Client Software Developer's Kit provides Microsoft ODBC Driver Manager 3.5. Because the ODBC 3.0 Driver Manager is compatible with 2.x compliant drivers, all 2.x versions of the Driver Manager should be removed from your access path to ensure application stability. Failing to remove older versions of the Driver Manager may result in application errors and abnormal terminations. ODBC Driver Manager Bugs (Windows-only) --------------------------------------- Please review the release notes file included with the Client SDK for all known ODBC Driver Manager bugs. In addition to the bug list included in the RELNOTES.WRI file, the following problem exists: Calling SQLRowCount after receiving a SQL_NO_DATA return from an executed statement results in a HY010 Function Sequence Error. This error should not occur. Microsoft Query and INTERVAL (Windows-only) ------------------------------------------- Attempting to use Microsoft Query '95 with the Informix driver will result in a protection fault from Query. This is because Query does not recognize the INTERVAL data types supplied by the driver. Users will need to obtain Microsoft Query '97 to obtain the fix. IX. Fixed Problems PTS Description ------------------------ 106577 DOING INSERT OF AN INTEGER INTO A SERIAL COLUMN USING SQLBINDPARAMETER() AND SQLEXECDIRECT() WITH PARAMETERIZED SQL FAILS WITH SQLSTATE OF S1C00. 110683 SOME STRING LITERALS USED IN CONJUNCTION WITH A TEXT WHICH SHOULD GENERATE A SYNTAX ERROR INSTEAD UPDATE EVERY ROW IN THE TABLE 110691 A TEXT COLUMN INSERT OR UPDATE WHERE A STRING LITERAL IS USED AND THAT LITERAL ONLY CONTAINS HEXADECIMAL DIGITS RESULTS GARBAGE VALUES IN THE DB 109120 %S ERROR RETURNED INSTEAD OF A USER DEFINED -746 ERROR MESSAGE 99449 GPF IN SQLEXECDIRECT, AFTER SQLBINDPARAMETER, WHEN THE INSERT STATEMENT INCLUDES A SELECT STATEMENT WITH PARAMETER MARKER IN THE FILTER 89991 INTERSOLV 3.01 DRIVER REPORTS A 908 ERROR WHEN ATTEMPTING CONNECTIONS ACROSS THREADS 98176 INTERSOLVE DRIVER (3.01.0005) IS NOT PRESERVING QUOTES THAT SURROUND A TABLE NAME IN AN OUTER JOIN CLAUSE CAUSING A 206 ERROR WITH ANSI DATABASES 94861 DATETIME COLUMNS MONTH TO DAY ARE PADDED WITH YEAR VALUE 1111 BY DRIVER. THIS CAUSES A DATETIME FIELD OVERFLOW ERROR ON 02-29 ================================= RELEASE NOTES FOR INFORMIX-GLS 3.10 SDK Release Version 2.30 DATE: <05/05/99> ================================= I. Overview of Release Notes II. New Features III. Product Description of INFORMIX-GLS 3.10 IV. Including header files V. Example Files VI. Known Problems VII. Fixed Problems +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ OVERVIEW OF RELEASE NOTES ========================= The purpose of these release notes is to make you aware of any special actions required to configure and use INFORMIX-GLS 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-GLS Programmer's Manual," which provides thorough information about product features and behavior. NEW FEATURES ============ This release has no new features. PRODUCT DESCRIPTION OF INFORMIX-GLS 3.10 ======================================== INFORMIX-GLS is an application-programming interface (API) that provides functions and macros for the implementation of internationalized applications that are compatible with Informix GLS internationalization. This API allows applications to access information in Informix locale files. Previous versions of the INFORMIX-GLS product were called the Informix GLS API. Use of the name GLS API is discontinued in the documentation. INCLUDING HEADER FILES ====================== To use INFORMIX-GLS, you must remember to include the header file in any source code that references an INFORMIX-GLS function: o INFORMIX-ESQL/C Include the ifxgls.h header file in any source code that references an INFORMIX-GLS function. The ESQL/C preprocessor automatically includes the INFORMIX-GLS library. For information on how to build ESQL/C applications, refer to the "INFORMIX-ESQL/C Programmer's Guide." o Client LIBMI Applications Include the ifxgls.h header file in any source code that references an INFORMIX-GLS function. You can use the ESQL/C preprocessor to automatically include the INFORMIX-GLS library in your client LIBMI application. Otherwise, you must explicitly list the library at link time. For information on how to build client LIBMI applications that use INFORMIX-GLS, refer to the "INFORMIX-GLS Programmer's Manual." o DataBlade Server Routines Include the ifxgls.h header file in any source code that references an INFORMIX-GLS function. The INFORMIX-GLS library is already linked into the Informix Dynamic Server with Universal Data Option. Therefore, you do not need to take special link steps to use INFORMIX-GLS in a server routine. EXAMPLE FILES ============= This product does not include example files. KNOWN PROBLEMS ============== This product has no known problems at this time. FIXED PROBLEMS ============== This product has no fixed problems at this time.