Setting the TYPE or ITYPE Field

Use these integer values to set the value of TYPE or ITYPE for each item.
SQL Data Type Integer Value X-Open Integer Value SQL Data Type Integer Value X-Open Integer Value
CHAR 0 1 MONEY 8 -
SMALLINT 1 4 DATETIME 10 -
INTEGER 2 5 BYTE 11 -
FLOAT 3 6 TEXT 12 -
SMALLFLOAT 4 - VARCHAR 13 -
DECIMAL 5 3 INTERVAL 14 -
SERIAL 6 - NCHAR 15 -
DATE 7 - NVARCHAR 16 -
The following table lists integer values that represent additional data types available with Informix®.
SQL Data Type Integer Value SQL Data Type Integer Value
INT8 17 Fixed-length OPAQUE type 41
SERIAL8 18 LVARCHAR (client-side only) 43
SET 19 BOOLEAN 45
MULTISET 20 BIGINT 52
LIST 21 BIGSERIAL 53
ROW (unnamed) 22 IDSSECURITYLABEL 2061
COLLECTION 23 ROW (named) 4118
Variable-length OPAQUE type 40

The same TYPE constants can also appear in the syscolumns.coltype column in the system catalog; see Informix® Guide to SQL: Reference.

For code that is easier to maintain, use the predefined constants for these SQL data types instead of their actual integer values. These constants are defined in the $INFORMIX/incl/public/sqltypes.h header file. You cannot, however, use the actual constant name in the SET DESCRIPTOR statement. Instead, assign the constant to an integer host variable and specify the host variable in the SET DESCRIPTOR statement file.

The following example shows how you can set the TYPE field in Informix® ESQL/C:
main()
{
EXEC SQL BEGIN DECLARE SECTION;
   int itemno, type;
EXEC SQL END DECLARE SECTION;
...
EXEC SQL allocate descriptor 'desc1' with max 5;
...
type = SQLINT; itemno = 3;
EXEC SQL set descriptor 'desc1' value :itemno type = :type;
}

This information is identical for ITYPE. Use ITYPE when you create a dynamic program that does not comply with the X/Open standard.