The SQLDA data structure is shown below:
01 SQLDA sync.
05 SQLDAID PIC X(8) VALUE "SQLDA ".
05 SQLDABC PIC S9(9) COMP-5 value 0.
05 SQLN PIC S9(4) COMP-5 value 0.
05 SQLD PIC S9(4) COMP-5 value 0.
05 SQLVAR OCCURS 0 TO 1489 TIMES DEPENDING ON SQLD.
10 SQLTYPE PIC S9(4) COMP-5.
10 SQLLEN PIC S9(4) COMP-5.
$IF P64 SET
*> For 64-bit environments, ensure that SQLDATA is
*> aligned on an 8-byte boundary.
10 FILLER PIC S9(9) COMP-5.
$END
10 SQLDATA USAGE POINTER.
10 SQLIND USAGE POINTER.
10 SQLNAME.
15 SQLNAMEL PIC S9(4) COMP-5.
15 SQLNAMEC PIC X(30).
The following table describes the contents of the SQLDA data structure.
| Field | Contains |
|---|---|
| SQLDAID | The text string "SQLDA". |
| SQLDABC |
|
| SQLN | Total number of SQLVAR entries allocated, equal to the number of input parameters or output columns. |
| SQLD | Number of SQLVAR entries used. |
| SQLVAR | SQLVAR is a group item, the number of occurrences of which depends on the value of SQLD. |
| SQLTYPE | A number representing the data type of the column or host variable and indicating whether null values are allowed (see the table below for valid values). |
| SQLLEN | Length of a value from a column. If the data is decimal (including money), SQLLEN is split into two parts: the first byte contains the precision; the second byte contains the scale. |
| FILLER | For 64-bit environments, this is necessary to ensure that SQLDATA and SQLIND reside on 8-byte boundaries in memory, which is required for execution within a 64-bit environment. |
| SQLDATA | For FETCH, OPEN, and EXECUTE, the address of the host variable (must be inserted by the application). For DESCRIBE and PREPARE, SQLDATA is not used. |
| SQLIND | For FETCH, OPEN, and EXECUTE, the address of an associated indicator variable, if one exists. If the column does not permit a null value, the field is undefined. If the column permits a null value, SQLIND is set to -1 if the data value is null or to 0 if the data value is not null. For DESCRIBE and PREPARE, SQLIND is not used. |
| SQLNAME | A group item containing the name and length of the column (not used for FETCH, OPEN or EXECUTE. |
| SQLNAMEL | Length of the name column |
| SQLNAMEC | Name of the column. For a derived column, this field contains the ASCII numeric literal value that represents the derived column's original position within the select list |
78 ESQL-DATE-CHAR VALUE 384.
78 ESQL-DATE-CHAR-NULL VALUE 385.
78 ESQL-DATE-REC VALUE 386.
78 ESQL-DATE-REC-NULL VALUE 387.
78 ESQL-TIME-CHAR VALUE 388.
78 ESQL-TIME-CHAR-NULL VALUE 389.
78 ESQL-TIME-REC VALUE 390.
78 ESQL-TIME-REC-NULL VALUE 391.
78 ESQL-TIMESTAMP-CHAR VALUE 392.
78 ESQL-TIMESTAMP-CHAR-NULL VALUE 393.
78 ESQL-TIMESTAMP-REC VALUE 394.
78 ESQL-TIMESTAMP-REC-NULL VALUE 395.
78 ESQL_TIMESTAMP_OFFSET_CHAR VALUE 396.
78 ESQL_TIMESTAMP_OFFSET_CHAR_NULL VALUE 397.
78 ESQL_TIMESTAMP_OFFSET_REC VALUE 398.
78 ESQL_TIMESTAMP_OFFSET_REC_NULL VALUE 399.
78 ESQL-LONGVARBINARY VALUE 404.
78 ESQL-LONGVARBINARY-NULL VALUE 405.
78 ESQL-LONGVARCHAR VALUE 408.
78 ESQL-LONGVARCHAR-NULL VALUE 409.
78 ESQL-BINARY VALUE 444.
78 ESQL-BINARY-NULL VALUE 445.
78 ESQL-VARBINARY VALUE 446.
78 ESQL-VARBINARY-NULL VALUE 447.
78 ESQL-VARCHAR VALUE 448.
78 ESQL-VARCHAR-NULL VALUE 449.
78 ESQL-CHARVARYING VALUE 450. *> added esq03n31
78 ESQL-CHARVARYING-NULL VALUE 451. *> added esq03n31
78 ESQL-CHAR VALUE 452.
78 ESQL-CHAR-NULL VALUE 453.
78 ESQL-CHAR-FIXED VALUE 454. *> added esq03n31
78 ESQL-CHAR-FIXED-NULL VALUE 455. *> added esq03n31
78 ESQL-VARGRAPH VALUE 464.
78 ESQL-VARGRAPH-NULL VALUE 465.
78 ESQL-GRAPHIC VALUE 468.
78 ESQL-GRAPHIC-NULL VALUE 469.
78 ESQL-LONGRAPH VALUE 472.
78 ESQL-LONGRAPH-NULL VALUE 473.
78 ESQL-DOUBLE VALUE 480.
78 ESQL-DOUBLE-NULL VALUE 481.
78 ESQL-REAL VALUE 482.
78 ESQL-REAL-NULL VALUE 483.
78 ESQL-DECIMAL VALUE 484.
78 ESQL-DECIMAL-NULL VALUE 485.
78 ESQL-BIGINT VALUE 492.
78 ESQL-BIGINT-NULL VALUE 493.
78 ESQL-INTEGER VALUE 496.
78 ESQL-INTEGER-NULL VALUE 497.
78 ESQL-SMALLINT VALUE 500.
78 ESQL-SMALLINT-NULL VALUE 501.
78 ESQL-TINYINT VALUE 502.
78 ESQL-TINYINT-NULL VALUE 503.
78 ESQL-UDISP-UNSIGN VALUE 510.
78 ESQL-UDISP-UNSIGN-NULL VALUE 511.
78 ESQL-UDISP-SIGN-LEAD-SEP VALUE 512.
78 ESQL-UDISP-SIGN-LEAD-SEP-NULL VALUE 513.
78 ESQL-UDISP-SIGN-TRAIL-SEP VALUE 514.
78 ESQL-UDISP-SIGN-TRAIL-SEP-NULL VALUE 515.
78 ESQL-UDISP-SIGN-LEAD-INC VALUE 516.
78 ESQL-UDISP-SIGN-LEAD-INC-NULL VALUE 517.
78 ESQL-UDISP-SIGN-TRAIL-INC VALUE 518.
78 ESQL-UDISP-SIGN-TRAIL-INC-NULL VALUE 519.
78 ESQL-WCHAR VALUE 1080.
78 ESQL-WCHAR_NULL VALUE 1081.
78 ESQL-WVARCHAR VALUE 1090.
78 ESQL-WVARCHAR_NULL VALUE 1091.
78 ESQL-WLONGVARCHAR VALUE 1100.
78 ESQL-WLONGVARCHAR_NULL VALUE 1101.
78 ESQL_UTINYINT VALUE 1200.
78 ESQL_UTINYINT_NULL VALUE 1201.
78 ESQL_USMALLINT VALUE 1202.
78 ESQL_USMALLINT_NULL VALUE 1203.
78 ESQL_UINTEGER VALUE 1204.
78 ESQL_UINTEGER_NULL VALUE 1205.
78 ESQL_UBIGINT VALUE 1206.
78 ESQL_UBIGINT_NULL VALUE 1207.
78 ESQL-PICX-VARYING VALUE 1208.
78 ESQL-PICX-VARYING-NULL VALUE 1209.