BEGIN DECLARE SECTION
BEGIN DECLARE SECTION ステートメントは、SQL 宣言セクションの開始を示します。SQL 宣言セクションには、プログラム内の SQL ステートメントでホスト変数として使用できる有資格ホスト変数の宣言が含まれます。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込んで使用します。それ以外の使用法はありません。 このステートメントは、実行可能ステートメントではありません。 Java™、RPG または REXX で指定してはなりません。
権限
権限は不要です。
説明
BEGIN DECLARE SECTION ステートメントを使用して、SQL 宣言セクションの始まりを示します。 これは、ホスト言語の規則に従って変数宣言を置ける場所であれば、アプリケーション・プログラム内のどこにでもコーディングすることができます。 ホスト構造体の宣言の内部に、コーディングすることはできません。SQL 宣言セクションは、END DECLARE SECTIONで説明されているように END DECLARE SECTION ステートメントで終了します。
BEGIN DECLARE SECTION と END DECLARE SECTION ステートメントは、対にして使用しなければなりません。また、これらのステートメントをネストすることはできません。
DECLARE VARIABLE および INCLUDE ステートメント以外の SQL ステートメントは、宣言セクション内にコーディングしてはなりません。
プログラムに SQL 宣言セクションの指定がある場合は、その SQL 宣言セクションで宣言されている変数だけがホスト変数として使用できます。 プログラムに SQL 宣言セクションの指定がない場合は、そのプログラムの中の変数はすべてがホスト変数として使用できます。
RPG および REXX 以外のホスト言語では、そのソース・プログラムが SQL の IBM® SQL 規格に準拠するように、SQL 宣言セクションを指定する必要があります。SQL 宣言セクションは、C++ のすべてのホスト変数に必須です。 SQL 宣言セクションは、変数に対する最初の参照よりも前にコーディングされている必要があります。Java および RPG では、これらのステートメントを使用せずにホスト変数が宣言され、また REXX ではホスト変数は宣言されません。
SQL 宣言セクションの外側で宣言されている変数の名前は、SQL 宣言セクション内で宣言されている変数と同じ名前であってはなりません。
複数の SQL 宣言セクションを、プログラムに指定することができます。
例
例 1: C プログラムで、ホスト変数の hv_smint (SMALLINT)、hv_vchar24 (VARCHAR(24))、および hv_double (DOUBLE) を定義します。
EXEC SQL BEGIN DECLARE SECTION;
static short hv_smint;
static struct {
short hv_vchar24_len;
char hv_vchar24_value[24];
} hv_vchar24;
static double hv_double;
EXEC SQL END DECLARE SECTION;
例 2: COBOL プログラムで、ホスト変数 HV-SMINT (smallint)、HV-VCHAR24 (varchar(24))、および HV-DEC72 (dec(7,2)) を定義します。
WORKING-STORAGE SECTION.
EXEC SQL BEGIN DECLARE SECTION END-EXEC.
01 HV-SMINT PIC S9(4) BINARY.
01 HV-VCHAR24.
49 HV-VCHAR24-LENGTH PIC S9(4) BINARY.
49 HV-VCHAR24-VALUE PIC X(24).
01 HV-DEC72 PIC S9(5)V9(2) PACKED-DECIMAL.
EXEC SQL END DECLARE SECTION END-EXEC.