SQLDA データ構造体

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 数値定数値を含みます。
SQLTYPE の有効な値

奇数番号のコード値は、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