SQLDA データ構造体は次のとおりです。
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(9) 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.
10 SQLDATA USAGE POINTER.
10 SQLIND USAGE POINTER.
10 SQLNAME.
15 SQLNAMEL PIC S9(4) COMP-5.
15 SQLNAMEC PIC X(30).次の表は SQLDA データ構造体の内容を示します。
| フィールド | 内容 |
|---|---|
| SQLDAID | テキスト文字列「SQLDA」。 |
| SQLDABC | SQLDA データ構造体の長さ (SQLN * 44 + 16)。 |
| SQLN | 割り当てられた SQLVAR エントリの総数で、入力パラメータまたは出力される列の数と等しくなります。 |
| SQLD | 使用されている SQLVAR エントリの数。 |
| SQLVAR | SQLVAR はグループ項目で、SQLD の値に応じた発生数です。 |
| SQLTYPE | 列またはホスト変数のデータ型を表し、NULL 値を許可するかどうかを示す数 (有効な値については次の表を参照してください)。 |
| SQLLEN | 列の値の長さ。 データが 10 進数型 (通貨型を含む) の場合、SQLLEN は 2 つの部分に分けられます。最初のバイトは精度、次のバイトは位取りを表します。 |
| SQLDATA | FETCH、OPEN、および EXECUTE の場合は、ホスト変数のアドレス (アプリケーションで挿入されます)。 DESCRIBE と PREPARE の場合は、SQLDATA は使用されません。 |
| SQLIND | FETCH、OPEN、および EXECUTE については、関連付けられたインジケータ変数が存在する場合のそのアドレス。 列に NULL 値を使用できない場合は、このフィールドは未定義になります。 列に NULL 値を使用でき、データ値が NULL のときは SQLIND が -1 に設定され、データ値が NULL 以外の場合は 0 に設定されます。 DESCRIBE と PREPARE の場合には、SQLIND は使用されません。 |
| SQLNAME | 列の名前と長さを含むグループ項目 (FETCH、OPEN または EXECUTE には使用されません)。 |
| SQLNAMEL | 名前列の長さ。 |
| SQLNAMEC | 列の名前。 導出列の場合、このフィールドは、選択リスト中の取り出された列の元の位置を表す ASCII 数値定数値を含みます。 |
奇数番号のコード値は、NULL 値を使用できることを示します。
(1) - これらのデータ型は、PREPARE INTO または DESCRIBE 文により COBOL に返すことができます。
(2) - これらのデータ型は、動的 SQL を使用してアプリケーションで設定することができます。
(3) - これらのデータ型は、COBOL ホスト変数に対してサポートされます。
(4) - COBOL ホスト変数を DATE/TIME 列に使用する変数として認識するためには、SQL TYPE IS 定義を使用する必要があります。
| コード | データ型 | SQL データ型 | COBOL データ型 |
|---|---|---|---|
| 384/385 (1,2,3,4) | 10 バイトの日付文字列 | Date | SQL TYPE IS DATE または PIC X(10) |
| 386/387 (1,2,3,4) | 日付レコード | Date | SQL TYPE IS DATE-RECORD |
| 388/389 (1,2,3,4) | 8 バイトの時刻文字列 | Time | SQL TYPE IS TIME または PIC X(8) |
| 390/391 (1,2,3,4) | 時刻レコード | Time | SQL TYPE IS TIME-RECORD |
| 392/393 (1,2,3,4) | 29 バイトのタイムスタンプ文字列 | Timestamp | SQL TYPE IS TIMESTAMP または PIC X(29) |
| 394/395 (1,2,3,4) | タイムスタンプレコード | Timestamp | SQL TYPE IS TIMESTAMP-RECORD |
| 404/405 (1) | 可変長ラージバイナリ | long varbinary | 01 NAME
49 PIC LEN S9(9) COMP-5 49 PIC VAL X(n) |
| 408/409 (1) | 可変長ラージ文字列 | long varchar | 01 NAME
49 PIC LEN S9(9) COMP-5 49 PIC VAL X(n) |
| 444/445 (1,2) | バイナリ | Binary | PIC X(n) |
| 446/447 (1,2) | 可変長バイナリ | Varbinary | 01 NAME
49 PIC LEN S9(4) COMP-5 49 PIC VAL X(n) |
| 448/449 (1,2,3) | 可変長文字 | Varchar | 01 NAME
49 PIC LEN S9(4) COMP-5 49 PIC VAL X(n) |
| 452/453 (1,2,3) | 固定長文字 | Char | PIC X(n) |
| 480/481 (1,2,3) | 8 バイトの浮動小数点 | float または double | COMP-2 |
| 482/483 (1,2) | 4 バイトの浮動小数点 | Real | COMP-1 |
| 484/485 (1,2,3) | 10 進数 | decimal、numeric または bigint | PIC S9(n)V9(m)
COMP-3 |
| 492/493 (1,2,3) | 8 バイトの整数 | bigint | PIC X(8) COMP-5 |
| 496/497 (1,2,3) | 4 バイトの整数 | Integer | PIC S9(9) COMP-5 |
| 500/501 (1,2,3) | 2 バイトの整数 | Smallint | PIC S9(5) COMP-5 |
| 502/503 (1,2) | 1 バイトの整数 | Tinyint | PIC S9(9) COMP-5 |
| 1080/1081 (1,2,3) | ユニコード文字列 | Nchar | PIC N(n) USAGE NATIONAL |
| 1090/1091 (1,2,3) | ユニコード可変長文字列 | Nvarchar | PIC N(n) USAGE NATIONAL |
| 1100/1101 (1,2,3) | ユニコード可変長ラージ文字列 | NTEXT | PIC N(n) USAGE NATIONAL |