SQLCA データ構造体

Open ESQL と DB2 ECM の SQLCA データ構造体を次に示します。

 01 SQLCA.
   03 SQLCAID    PIC X(8) VALUE "SQLCA".
   03 SQLCABC    PIC S9(9) COMP-5 VALUE 136.
   03 SQLCODE    PIC S9(9) COMP-5 VALUE 0.
   03 SQLERRM.
     49 SQLERRML   PIC S9(4) COMP-5.
     49 SQLERRMC   PIC X(70).
   03 SQLERRP    PIC X(8).
   03 SQLERRD    PIC S9(9) COMP-5 OCCURS 6 VALUE 0.
   03 SQLWARN.
     05 SQLWARN0   PIC X.
     05 SQLWARN1   PIC X.
     05 SQLWARN2   PIC X.
     05 SQLWARN3   PIC X.
     05 SQLWARN4   PIC X.
     05 SQLWARN5   PIC X.
     05 SQLWARN6   PIC X.
     05 SQLWARN7   PIC X.
   03 FILLER     PIC X(3).
   03 SQLSTATE   PIC X(5).

Oracle、Sybase および Informix では、SQLCA のバージョンがそれぞれ異なっています。 Oracle、Sybase および Informix の SQLCA にはどれも、SQLCODE、SQLERRML、SQLERRMC および SQLWARN フィールドが存在します。 フィールドのサイズや位置は、プリコンパイラの種類によって異なる場合があります。

次の表に、SQLCA データ構造体の内容を示します。

フィールド 内容
SQLCAID テキスト文字列「SQLCA」。
SQLCABC SQLCA データ構造体の長さ。
SQLCODE 最後に実行した SQL 文のステータスコード。
   
SQLERRML SQLERRMC のエラー メッセージの長さ (0 ~ 70)。
SQLERRMC エラー メッセージのテキスト。 70 バイトよりも長いエラー メッセージは切り捨てられます。
SQLERRP 予約済み(診断情報)。
SQLERRD 6 個の整数ステータスコードの配列 (次に示されていないものは予約されています)。
SQLERRD(1) SQL サーバーエラー番号。
SQLERRD(2) SQL サーバーの重大度。
SQLERRD(3) 影響を受ける行の数。
SQLWARN 8 個の警告フラグがあり、それぞれに空白または「W」が含まれます (次にリストされていないものは予約されています)。SQLCODE の値が +1 の場合は、警告フラグが設定されます。
SQLWARN0 すべての警告フィールドの要約。 空白は警告がないことを意味します。
SQLWARN1 「W」 は、文字ホスト変数への出力データが切り捨てられたことを示します。
SQLWARN2 「W」は、Null 値が存在し、インジケーター変数が指定されていないことを示します。
SQLWARN3 「W」は、ホスト変数の数よりも列の数が少ないか、指定されたホスト変数の数が文のパラメーターマーカーの数と一致しないことを意味します。 2 つの数字のどちらか小さい方が使用されています。
SQLWARN4 「W」は、複数の行 (最初の行だけが返されます) を返すシングルトン選択を示します。
FILLER 予約済み。
SQLSTATE 最後に実行した SQL 文のステータスインジケーター。