SQL 通信領域

SQL 文を実行するたびに、重要な情報がプログラムの SQL 通信領域 (SQLCA) と呼ばれる領域に返されます。SQL 通信領域を使用するには、通常、次の文をプログラムに記述します。

exec sql include sqlca end-exec

この文を記述しない場合でも DB2 ECM は自動的に領域を割り当てますが、プログラムではその領域にアクセスできません。ただし SQLCODE または SQLSTATE またはその両方を宣言する場合は、各 EXEC SQL 文の後に SQLCA 領域の対応フィールドをユーザ定義フィールドにコピーするコードが DB2 ECM によって生成されます。

ヒント: ANSI 準拠のために、SQLCA 全体を定義することをお勧めします。

MFSQLMESSAGETEXT データ項目が定義されている場合は、SQLCODE にゼロ以外の条件が検出されるたびに、DB2 ECM は 例外条件の説明によって MFSQLMESSAGETEXT データ項目の内容を更新します。MFSQLMESSAGETEXT を定義する場合、必ず文字列データ項目として宣言します (PIC X(n) として宣言し、n には有効値を入力します。メッセージがデータ項目の長さを超える場合は切り詰められます)。

SQLCA、SQLCODE、SQLSTATE、MFSQLMESSAGETEXT は、いずれもホスト変数として宣言する必要はありません。