=================================
RELEASE NOTES FOR

INFORMIX-ESQL/C, version 9.21

Informix Client SDK 2.30

DATE: May 1999

TABLE OF CONTENTS

  1. Overview of Release Notes
  2. New Features
    1. New integer data types
    2. Century Settings on a Per-Call basis
    3. New SQLSTATE Setting
    4. Support of Multiplexed Connections on Windows
    5. Decimal Precision for FLOAT and SMALLFLOAT Conversions to DECIMAL Data Type
  3. Example Files
  4. Known Problems
    1. String and Varchar Host Variables
    2. Running setnet32 with the Silent Option (Windows only)
  5. 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:

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:

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