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 |