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 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 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.