=================================
                             RELEASE NOTES FOR
                         INFORMIX-Client SDK 2.30
                              DATE May 1999
                     =================================

TABLE OF CONTENTS

I.    Overview of Release Notes
II.   New Features
III.  Configuration Requirements
IV.   Example Files
V.    Known Problems
VI.   Fixed Problems
VII.  Version Checking
VIII. ODBC Products
IX.   Client-Server Testing

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 Client SDK products 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 product manuals which provide 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 Client SDK, Version  2.3

You will find release notes for products available as part of the Client
SDK 2.3 release in the following files

---------------------------------------------------------------------------
| Filenames                             | Product                         |
|-------------------------------------------------------------------------|
| CPPREL.HMT[L], CPPREL.TXT             | INFORMIX-Object Interface for   |
|                                       | C++                             |
|-------------------------------------------------------------------------|
| ESQLCREL.HTM[L], ESQLCREL.TXT         | INFORMIX-ESQL/C                 |
|-------------------------------------------------------------------------|
| GLSAPIREL.HTM[L], GLSAPIREL.TXT       | INFORMIX-GLS                    |
|-------------------------------------------------------------------------|
| INFODBCREL.HTM[L], INFODBCREL.TXT     | INFORMIX ODBC Driver            |
|-------------------------------------------------------------------------|
| ODBCREL.HTM[L], ODBCREL.TXT           | INTERSOLV DataDirect ODBC       |
|                                       | Driver                          |
---------------------------------------------------------------------------


NEW FEATURES
============

Informix ODBC Driver, Version 3.30, is now available and replaces INFORMIX-
CLI, Version 2.8, in the Client SDK 2.3 release.

Not only is this new driver compliant with the ODBC 3.0 level 1+
specification, it also supports UDO server extensions and, on Windows 32,
Microsoft Transaction Service (MTS). The Informix ODBC Driver is our
feature and maintenance path for INFORMIX-CLI, Versions 2.5 and 2.8 and
the Intersolv Data Direct ODBC Driver, Version 3.x.

Informix ODBC Driver will be the only ODBC driver distributed with the
Client SDK 2.4 release and later releases. Informix will continue to
redistribute the Intersolv Driver Manager on UNIX, and the Microsoft
Driver Manager on Windows.


CONFIGURATION REQUIREMENTS
==========================

You must not install the 32-bit version and the 64-bit version of the
Client SDK in the same INFORMIXDIR directory.


EXAMPLE FILES
=============

This product does not include example files.


KNOWN PROBLEMS
==============

This section describes the known problems with this release of the Client
SDK and shows how to work around these problems. See individual product
release notes for problems that are specific to each product.


MESSAGE FILENAME CHANGE IN THE CLIENT SDK 2.01 AND LATER
--------------------------------------------------------

For the US English locale, the following problem has been fixed for
Version 2.30 of the Client SDK and Connect on both Win32 and UNIX
platforms.

The term "old client APIs" in the text below means pre-2.01 versions of
Client SDK and Connect and all versions of the separate ESQL/C, ESQL/COBOL
and CLI products; the term "new client APIs" means 2.01 and later versions
of Client SDK and Connect.

After the installation of versions 2.01 or later of Client SDK or Connect
on either Win32 or UNIX platforms, a category of already compiled
applications may exhibit an error.

The shared and static libraries in both the old and new client APIs refer
to message files in the directory $INFORMIXDIR/msg on UNIX and
%INFORMIXDIR%\msg on Win32. The names of several message files were
changed in the new client APIs to avoid conflict with the server versions
of those files. For example, old client APIs distributed the message file
sqli.iem and the libraries in the old client APIs referred to sqli.iem.
Now the new client APIs distribute that same message file under the name
of csqli.iem and the libraries in the new client APIs refer to csqli.iem.

All of the following circumstances must occur in order for this error to
manifest itself

  o An application was linked with the static libraries of an old client
    API.

  o A new client API is installed in a different directory than the one
    containing the old client API.

  o The INFORMIXDIR used by the application is changed to point to the
    directory containing just the new client API.

If all of these conditions apply, then the application will continue to
look for message files by their old name, for example, sqli.iem. However,
the directory containing just the new client API will have those files by
their new name, for example, csqli.iem. Therefore, an error message will
be given.

You can use any one of the following workarounds to avoid the error

  o Link the application with the shared libraries from the old client API.

  o Install the new client API in the same directory that you installed
    the old client API and don't change INFORMIXDIR.

  o Install the old client API in the same directory that you will
    install the new client API; install the old client API first.

  o Re-link your application with the static libraries from the new
    client API

  o For all message sub-directories within the directory that contains
    just the new client APIs, make copies of each of the following files
    and give the copies new names as indicated below. Do this in each
    message sub-directory. This includes, at least, the US English sub-
    directory %INFORMIXDIR%\msg\en_us\04e4 on Win32 and
    $INFORMIXDIR/msg/en_us/0333 on UNIX. If there are message sub-
    directories for other languages you installed, you should do the same
    copying for them too; for example,%INFORMIXDIR%\msg\fr_fr\04e4 on
    Win32 and $INFORMIXDIR/msg/fr_fr/0333 on UNIX.

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

This problem has been fixed for Version 2.3. In Version 2.3, the install
process of these products will first look to see if the message files
already exist by their "old" name in the target installation directory. If
they already exist, nothing special will be done. If they do not already
exist, a link (on UNIX) or a copy (on Win32) of each message file whose
name changed will be made so that both files, like sqli.iem and csqli.iem,
will always be guaranteed to exist. This fix will remain in the
installation of Client SDK and Connect in all future releases of those
products.


USING ESQL/C LIBRARIES
----------------------

In the following notes, I-CONNECT 2.30 refers to the conn.tar file in the
Client SDK 2.30 bundle, and ClientSDK 2.30 refers to the clientsdk.tar
file in the Client SDK 2.30 bundle.

1.  If I-CONNECT 2.30 is NOT installed on top of an existing 7.2x ESQL/C
    installation

  o     Both "installconn" and "installconn -u" will install 2.30 I-
    CONNECT exactly the same as the current I-CONNECT  "installconn". The
    -u option is only available in UNIX. NT ESQL/C does not need this
    option.

  o     Any existing 7.2x UNIX ESQL/C (and 7.23 NT ESQL/C) applications
    can use this installed I-CONNECT without relinking or recompilation.
    If recompilation is not performed, only 7.2x level
    functionality and some bug fixes will be available.

    To recompile and get new functionality, you need the development
    version of the product (ClientSDK 2.30 tar file).

2.   If I-CONNECT 2.30 is installed on top of an existing 7.2x ESQL/C
    installation

  o "installconn" will install 9.2 ESQL/C shared libraries, and either
    KEEP the 7.2x shared libraries or REPLACE them with the 9.2 ones. The
    script "installconn" will ask you whether you want to overwrite the
    existing shared libraries or not. If the existing shared libraries
    are chosen NOT to be overwritten, then

    - Existing 7.2x applications will continue to use the existing 7.2x
      shared libraries.

    - Existing 9.1x applications can use the 9.2 shared libraries. If the
      existing shared libraries are overwritten, then the effect is the
      same as the effect caused by replacing 7.2x shared libraries with
      9.2 shared libraries (see next bullet).

  o "installconn -u" will install 9.2 UNIX ESQL/C shared libraries and
    REPLACE 7.2x shared libraries with the 9.2 shared libraries.
    (Actually, only the links are updated.)

    Both existing 7.2x (and 9.1x) applications will then use the 9.2
    shared libraries, and they should all work correctly. (The 7.2x shared
    libraries will not be accessible by the ESQL/C preprocessor.)
        No relinking or recompilation is required. However, only 7.2x
    level functionality and some bug fixes will be available if an 7.2x
    application is not recompiled.

3.  Installing ClientSDK 2.30 with ESQL/C Libraries

  o If ClientSDK 2.30 is installed on top of an existing 7.2x ESQL/C
    installation, it will always REPLACE 7.2x shared libraries with the
    9.2 shared libraries. If you intend to continue using the 7.2x ESQL/C
    preprocessor or shared libraries, ClientSDK 2.30 should be installed
    in a separate directory.

  o Regardless of whether ClientSDK 2.30 is installed on top of an
    existing 7.2x ESQL/C or not, an existing 7.2x application CAN use the
    9.2 ESQL/C shared libraries in this installation without relinking or
    recompilation.

4.  In order to recompile 7.2x applications with 9.2 ESQL/C, customers
    need to install ClientSDK 2.30. The command "installclientsdk" is used
    to install clientsdk product that contain 9.2 ESQL/C (and other client
    products). Like the current "installesql", "installclientsdk" will
    overwrite all files in an existing 7.2x ESQL/C installation. There is
    no -u option for installclientsdk.


CLIENT SDK FILE SIZE INCREASE
-----------------------------

Due to the addition of several new Locale files, the size of the 2.30
Client SDK and I-Connect unix products have increased. For instructions on
removing unwanted locale files from the GLS Library, please reference the
Informix Guide to GLS Functionality, Version 9.1, Appendix A, Managing GLS
Files. This guide is available in the Answers On Line CD-ROM, and at

http//www.informix.com/answers/.


FIXED PROBLEMS
==============


ERROR MESSAGE CHANGE FOR CHKENV UTILITY
---------------------------------------

The chkenv utility returns an error message if it finds a bad environment-
variable entry in the shared-environment configuration file. Informix
products ignore all lines in the environment configuration file, starting
at the point of the error. When this error occured in previous releases,
you received the following error message

-33500    filename   Bad environment variable on line number.
When this error occurs in this release, you receive the following error
message

-33523   filename   Bad environment variable on line number.
Note The chkenv utility only checks for the validity of the environment-
variable name (not the values set) from the shared-environment
configuration file that comes with the same release. If the environment
variable is then passed to a server that is running a previous release,
that server will consider the environment variable  invalid and will
ignore it.

For example, the 7.2 release includes a new variable DB_LOCALE. The 7.2
chkenv utility will recognize this environment variable when it finds it
in the shared-environment configuration file. However, if the environment
variable is then sent to a 7.1 server, that server will ignore the
variable, as the variable is not included in the shared-environment
configuration file for Version 7.1.

See individual product release notes for problems that are specific to
each product.


VERSION CHECKING
================

For information on version checking, see the Informix Client Products
Installation Guide for UNIX, Version 2.30.


ODBC PRODUCTS
=============

Client SDK provides the following ODBC products

  o INFORMIX-ODBC, Version 3.3

    This product replaces INFORMIX-CLI, Version 2.8 and provides the
    following advantages

    - ODBC 3.0 level 1+ specification

    - ODBC 3.0 feature compliance

    - Support for INFORMIX-Dynamic Server with the Universal Data Option
      extended data types

    - Support for Microsoft Transaction Service (MTS), Windows only

    This product provides a seamless upgrade for INFORMIX-CLI 2.8
    customers. Many known issues with the INFORMIX-CLI 2.8 product have
    been resolved in Version 3.3. Version 3.3 provides ODBC 3.0 feature
    compliance.

  o INTERSOLV DataDirect ODBC Driver, Version 3.11

    IMPORTANT If you are upgrading to the Client SDK 2.30 from an earlier
    version of the Client SDK, and you already use INTERSOLV DataDirect
    ODBC Driver, Version 3.01 or 3.10, then the new version of the
    INTERSOLV DataDirect ODBC Driver will be installed in addition to, not
    as a replacement for, the 3.01/3.10 version. Therefore, you do not
    need to use the new version; it is an option. If you choose to use the
    new version, refer to the release notes for the INTERSOLV DataDirect
    ODBC Driver for instructions on upgrading DSNs.

    Informix will continue to redistribute and support the Intersolv Data
    Direct ODBC Driver version 3.11 as long as Intersolv supports and
    maintains it. Informix will continue to redistribute the Intersolv
    Driver Manager on UNIX, and the Microsoft Driver Manager on Windows.


CLIENT-SERVER TESTING
=====================

The Client SDK 2.30 products have been tested with the following database
servers

  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


                     =================================
                             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 for UNIX 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 ITConversionsConvertFrom(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 ITLocaleConvertDate() method returns incorrect results.

Bug 101676

Platform all

Compiler all

The ITLocaleConvertDatetime() method returns incorrect results.

Bug 103530

Platform all

Compiler all

ITValueFromPrintable("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.