================================= MACHINE SPECIFIC NOTES FOR INFORMIX-CLIENT SDK 2.40.FC1 PRODUCT RELEASE INFORMIX-ESQL/C Version 9.30.FC1 DATE: 30 Nov 1999 ================================= Machine Specific Notes: ======================= 1. HPUX-11.00 Patch Information: The following are the patches which were installed on the machine where the products were built and tested. Patch Name Description ========== =========== XSWCR1100 B.11.00 Extension Software Critical Patch Bundle XSWGR1100 B.11.00.39 HP-UX Extension Pack, June 1998 PHCO_14859 1.0 cumulative 10.20 libc y2k1100 0125 HP-UX Core OS Year 2000 Patch Bundle 2. This product is built and tested on HP B.11.00 U 9000/889 PA2.0 Architecture. 3. ESQL/C libraries are supported as both static and shared libraries. The 'esql' script has been changed to use either shared or static libraries. By default the script uses shared libraries. To use static libraries, the 'esql' script can be invoked as esql -static During execution of ESQL/C program, compiled with shared library you need to remember two points: A. Environment Variable LD_LIBRARY_PATH. Environment Variable LD_LIBRARY_PATH should be set to include $INFORMIXDIR/lib and $INFORMIXDIR/lib/esql. During runtime of the executable, dynamic loader will look for this path for Informix ESQL/C shared libraries. LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql export LD_LIBRARY_PATH (for Bourne or Korn Shell) setenv LD_LIBRARY_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/esql (for C Shell) 4. The thread safe ESQL/C libraries are supported on this platform using POSIX threads. Please make sure to set the THREADLIB environment variable to posix. export THREADLIB=POSIX (for Bourne or Korn Shell) setenv THREADLIB POSIX (for C Shell) To build thread safe ESQL/C programs, use the following command: esql -thread prog.ec -o prog Applications that have not been compiled with the -thread option cannot be linked with applications that have been compiled with the -thread option. To do so, compile all applications with the -thread option. 5. Migration of existing ESQL/C applications from 32 bit versions of INFORMIX-Client SDK to INFORMIX-Client SDK 2.40.FC1 . Informix recommends that ALL the existing applications should use the platform independent data types which are documented in "INFORMIX-ESQL/C Programmer's Manual, Version 2.40.FC1 Chapter 5 "Working with Numeric Data Types". Existing 32-bit applications must be changed, if any of the below- mentioned ESQL/C library functions/data types/structures are being used. Special attention needs to be taken for the most commonly used elements such as the external variable SQLCODE, "sqlca" structure elements sqlca.sqlcode and sqlca.sqlerrd[] array. 5a. Internal Implementation of the following ESQL/C predefined data types is different from the 32 bit version. ESQL/C Predefined Data Type C Language Data Type date Implemented as an int instead of long. 5b. ESQL/C Predefined data Types that have changed from the corresponding 32 bit version of Informix Client-SDK 2.40.FC1 are described as follows:- SQL Data ESQL/C Predefined Description of Change Type Data type BYTE loc_t The ESQL/C data type "loc_t" structure has changes to these members: lc_bufsize, lc_position, loc_indicator, loc_type, loc_size, loc_xfercount. These changes are in the Header File "locator.h". INT8 int8 or ifx_int8_t The ESQL/C data type "ifx_int8_t"/"int8" structure has changes to the member "data". "data" is now an array of unsigned int instead of being an array of unsigned long. 5c. ESQL/C Application Programming Interface Library functions. I. The following library function prototypes are in the Informix Header File "sqlhdr.h". Library Function Description rdatestr() Requires the input parameter "jdate" to be an int4 instead of long. rdayofweek() Requires the input parameter "date" to be an int4 instead of long. rdefmtdate() Requires the input parameter "pdate" to be an int4 instead of long. rfmtdate() Requires the input parameter "date" to be an int4 instead of long. rfmtlong() Requires the input parameter "lvalue" to be an int4 instead of long. rgetlmsg() Requires the input parameter "msgnum" to be an int4 instead of long. rjulmdy() Requires the input parameter "jdate" to be an int4 instead of long. rmdyjul() Requires the input parameter "jdate" to be an int4 instead of long. rstrdate() Requires the input parameter "jdate" to be an int4 instead of long. rtoday() Requires the input parameter "today" to be an int4 instead of long. rtypalign() Requires the input parameter "today" to be a long instead of an int. ifx_int8cvlong() Requires the input parameter "lng" to be an int4 instead of long. ifx_int8tolong() Requires the input parameter "lngp" to be a pointer to an int4 instead of pointer to a long. ifx_int8toint4() Requires the input parameter "lngp" to be a pointer to an int4 instead of pointer to a long. sqlbreakcallback() Requires the input parameter "timeout" to be an int4 instead of long. ifx_var_alloc() Requires the input parameter "size" to be an int4 instead of long. ifx_var_setdata() Requires the input parameter "size" to be an int4 instead of long. ifx_var_setlen() Requires the input parameter "size" to be an int4 instead of long. ifx_sqlcode() This function returns a pointer to an int4 instead of returning pointer to a long. II. The following library function prototypes are in the Informix Header File "decimal.h". Library Function Description deccvlong() Requires the input parameter "lng" to be an int4 instead of long. dectolong() Requires the input parameter "lngp" to be a pointer to an int4 instead of pointer to a long. III. The following library function prototypes are in the Informix Header File "xa.h" used in TP/XA applications. Library Function Description (*xa_open_entry)() Requires that this pointer to the function take (char *, int4, int4) as parameters instead of taking (char *, int4, long). (*xa_close_entry)() Requires that this pointer to the function take (char *, int4, int4) as parameters instead of taking (char *, int4, long). (*xa_start_entry)() take (XID *, int4, int4) as parameters instead of taking (XID *, int4, long). (*xa_end_entry)() Requires that this pointer to the function take (XID *, int4, int4) as parameters instead of taking (XID *, int4, long). (*xa_rollback_entry)() Requires that this pointer to the function take (XID *, int4, int4) as parameters instead of taking (XID *, int4, long). (*xa_prepare_entry)() Requires that this pointer to the function take (XID *, int4, int4) as parameters instead of taking (XID *, int4, long). (*xa_commit_entry)() Requires that this pointer to the function take (XID *, int4, int4) as parameters instead of taking (XID *, int4, long). (*xa_recover_entry)() Requires that this pointer to the function take (XID *, int4, int4, int4) as parameters instead of taking (XID *, long, int4, long). (*xa_forget_entry)() Requires that this pointer to the function take (XID *, int4, int4) as parameters instead of taking (XID *, int4, long). (*xa_complete_entry)() Requires that this pointer to the function take (XID *, int4 *, int4, int4) as parameters instead of taking (XID *, int4 *, int4, long). 5d. Other structures that have been modified for INFORMIX-ESQL/C Version 9.30.FC1 . In addition to the changes decsribed above, following types/structures are different for INFORMIX-ESQL/C Version 9.30.FC1 compared with the corresponding 32 bit INFORMIX-ESQL/C 9.30 elvers. (i) INFORMIX-ESQL/C header file "sqlca.h". For the sqlca structure declared in "sqlca.h" header file, member "sqlcode" is now an int4 instead of long. Member "sqlerrd" is now an array of int instead of being an array of long. Also, External variable SQLCODE is now an int4 instead of being a long. (ii) INFORMIX-ESQL/C header file "sqlda.h". The sqlda structure declared in the "sqlda.h" header file. This structure is used for holding data returned from a prepared statement. The sqlda structure has changed as follows: the members of the sub-member structure "sqlvar_struct" namely, sqllen, sqlxid, sqlsourceid, sqlflags are int4 instead of being long. ================================= MACHINE SPECIFIC NOTES FOR INFORMIX-CLIENT SDK 2.40.FC1 PRODUCT RELEASE C++ Interface Version 2.7 DATE: 30 Nov 1999 ================================= Machine Specific Notes: ======================= 1. This product is built and tested on HP B.11.00 U 9000/889 PA2.0 Architecture. 2. The product was tested on the machine with the following patches installed. XSWCR1100 B.11.00 Extension Software Critical Patch Bundle XSWGR1100 B.11.00.39 HP-UX Extension Pack, June 1998 PHCO_14859 1.0 cumulative 10.20 libc y2k1100 0125 HP-UX Core OS Year 2000 Patch Bundle 3. For shared library support, environment variable LD_LIBRARY_PATH needs to be set to include the $INFORMIXDIR/lib/c++ directories where C++ shared libraries are installed. For C shell, use setenv LD_LIBRARY_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/c++: $INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH For Bourne shell or Korn shell, use LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/c++: $INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH export LD_LIBRARY_PATH ================================= MACHINE SPECIFIC NOTES FOR INFORMIX-CLIENT SDK 2.40.FC1 PRODUCT RELEASE GLS API Version 3.10 DATE: 30 Nov 1999 ================================= Machine Specific Notes: ======================= 1. This product is built and tested on HP B.11.00 U 9000/889 PA2.0 Architecture. ================================= MACHINE SPECIFIC NOTES FOR INFORMIX-CLIENT SDK 2.40.FC1 PRODUCT RELEASE INFORMIX-ODBC for SQL Version 3.3 DATE: 30 Nov 1999 ================================= Machine Specific Notes: ======================= 1. This product is built and tested on HP B.11.00 U 9000/889 PA2.0 Architecture. 2. For shared library support, environment variable SHLIB_PATH needs to be set to include the $INFORMIXDIR/lib/cli directories where CLI shared libraries are installed. For C Shell, use setenv SHLIB_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$SHLIB_PATH For Bourne Shell, use SHLIB_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql:$SHLIB_PATH export SHLIB_PATH 3. The thread safe INFORMIX-ODBC libraries are supported for the current release. 4. UPDATE TO THE PRINTED DOCUMENTATION "INFORMIX-ODBC Programmer's Manual, Version 3.31.FC1 " This section contains updates to the printed CLI programmer's manual. The printed manual describes the ODBC programming interfaces/features visible to the customer for a 32 bit version of the Informix Client-SDK. Since this version of the Client-SDk is a 64 bit version, following Informix ODBC datatypes and API are defined in a different way to make it 64-bit safe. 4a. Informix ODBC Datatype Mapped to C-Datatype -------------------- ------------------- SQLINTEGER int instead of long. SQLUINTEGER unsigned int instead of unsigned long. SDWORD int instead of long. LONG int instead of long. UDWORD unsigned int instead of unsigned long int. LPARAM unsigned int instead of unsigned long int. BOOKMARK unsigned int instead of unsigned long int. 4b. Informix ODBC API Description --------------- ---------- SQLSetConnectOption Accepts the parametes as (SQLHDBC ,SQLUSMALLINT, ULONG) instead of (SQLHDBC ,SQLUSMALLINT, SQLUINTEGER) 5. Migration of existing ODBC applications from 32 bit versions of INFORMIX-Client SDK to INFORMIX-Client SDK 2.40.FC1 . ALL the existing 32-bit ODBC applications WILL need to be recompiled to make them work with INFORMIX-Client SDK 2.40.FC1 . Before recompiling these existing applications, changes will be required to make to the application sources, if above mentioned ODBC API and/or ODBC DAtatypes are being used. Also applications should not have any "long" and/or "unsigned long" C-Data types declared which is being passed to any Informix ODBC APIs. Informix recommends use of SQLINTEGER/SQLUINTEGER, SDWORD/UDWORD standard ODBC types as defined in Informix header files. 6. The product was tested on the machine with the following patches installed. XSWCR1100 B.11.00 Extension Software Critical Patch Bundle XSWGR1100 B.11.00.39 HP-UX Extension Pack, June 1998 PHCO_14859 1.0 cumulative 10.20 libc y2k1100 0125 HP-UX Core OS Year 2000 Patch Bundle