INCLUDE

INCLUDE ステートメントは、宣言とステートメントを含むアプリケーション・コードをソース・プログラムに挿入します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んで使用します。それ以外の使用法はありません。 このステートメントは、実行可能ステートメントではありません。Java™ または REXX の場合、このステートメントを指定してはいけません。

権限

このステートメントの権限 ID は、メンバーを含むファイルについて、 *OBJOPR および *READ のシステム権限を持つ必要があります。

構文

構文図を読む構文図をスキップする
>>-INCLUDE--+-SQLCA----+---------------------------------------><
            +-SQLDA----+   
            +-name-----+   
            '-'string'-'   

説明

SQLCA
SQL 連絡域 (SQLCA) の記述を組み込むことを指定します。プログラムに独立型の SQLCODE または独立型の SQLSTATE を組み込む場合は、INCLUDE SQLCA を指定してはなりません。 SQLCA は、C、C++、COBOL、および PL/I で指定できます。SQLCA を指定しない場合は、変数 SQLCODE または SQLSTATE をプログラム内で使用する必要があります。

INCLUDE SQLCA は、1 つのプログラムで一度しか指定できません。 詳しくは、SQL 診断情報を参照してください。

RPG プログラムでは、SQLCA を指定してはなりません。 RPG プログラムの場合、プリコンパイラーによって自動的に SQLCA が組み込まれます。

SQLCA についての説明は、SQLCA (SQL 連絡域)を参照してください。

SQLDA
SQL 記述子域 (SQLDA) の記述を組み込むことを指定します。 INCLUDE SQLDA は、C、C++、COBOL、PL/I、および ILE RPG で指定できます。

SQLDA についての詳細は、SQLDA (SQL 記述子域)を参照してください。

name
ソース・プログラムに組み込むメンバーまたはソース・ストリーム・ファイルを識別します。

SRCFILE パラメーターを使用してプリコンパイルを行う場合、これは、CRTSQLxxx コマンドの INCFILE パラメーターで指定されているファイルから組み込むメンバーを識別します。

SRCSTMF パラメーターを使用してプリコンパイルを行う場合、これは、CRTSQLxxx コマンドの INCDIR パラメーターからのパスを使用して組み込むファイルを識別します。 接尾部は、名前に付加されません。

このソースには、いずれかのホスト言語ステートメント、および INCLUDE ステートメント以外の SQL ステートメントを入れることができます。COBOL の場合、DATA DIVISION または PROCEDURE DIVISION 以外で INCLUDE メンバー名 を指定してはなりません。

'string'
CRTSQLxxx コマンドの INCDIR パラメーターからのパスを使用して組み込むファイルを識別します。 ストリングは、標準 SQL ストリング・リテラルとして処理されます。エスケープ文字に対するソース・ストリーム・ファイル規則には従いません。 接尾部は、ストリングに付加されません。

このソースには、いずれかのホスト言語ステートメント、および INCLUDE ステートメント以外の SQL ステートメントを入れることができます。

INCLUDE ステートメントは、プログラムをプリコンパイルすると、ソース・ステートメントに置き換えられます。

このため、プログラムで INCLUDE ステートメントを指定する場合は、 置き換え後のソース・ステートメントがコンパイラーに受け入れられるような場所に置かなければなりません。

CCSID に関する考慮事項: SRCFILE または SRCSTMF パラメーターで指定されたファイルの CCSID が INCLUDE ステートメントのソースの CCSID と異なる場合、INCLUDE ソースは、ソース・ファイルの CCSID に変換されます。

SQL 記述子域を C プログラムに組み込みます。

  EXEC SQL INCLUDE SQLDA;

  EXEC SQL DECLARE C1 CURSOR FOR
    SELECT DEPTNO, DEPTNAME, MGRNO FROM TDEPT
      WHERE ADMRDEPT = 'A00';

  EXEC SQL OPEN C1;

  while (SQLCODE==0) {
    EXEC SQL FETCH C1 INTO :dnum, :dname, :mnum;

  /* Print results */

  }

  EXEC SQL CLOSE C1;