BEGIN DECLARE SECTION

BEGIN DECLARE SECTION ステートメントは、SQL 宣言セクションの開始を示します。SQL 宣言セクションには、プログラム内の SQL ステートメントでホスト変数として使用できる有資格ホスト変数の宣言が含まれます。

呼び出し

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

権限

権限は不要です。

構文

構文図を読む構文図をスキップする
>>-BEGIN DECLARE SECTION---------------------------------------><

説明

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.