SQLCA データ構造体

Open ESQL および DB2 ECM の SQLCA データ構造体を以下に示します。

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

次の表で、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」は、シングルトン SELECT で複数の行が返されることを示します (最初の行だけが返されます)。
FILLER システムにより予約されています。
SQLSTATE 直前に実行された SQL 文の状態インジケーター。
注: Oracle、Sybase、および Informix のいずれのバージョンの SQLCA でも、SQLCODE、SQLERRML、SQLERRMC、および SQLWARN を使用します。これらのフィールドのサイズおよび位置は、プリコンパイラの種類によって異なる場合があります。