アプリケーション・プログラムへのステートメントの組み込み

SQL ステートメントは、CRTSQLCBL、CRTSQLCBLI、CRTSQLCI、 CRTSQLCPPI、CRTSQLPLI、CRTSQLRPG、または CRTSQLRPGI コマンドを使用することでプリコンパイラーに実行依頼されるソース・プログラムの中に組み込むことができます。 このようなステートメントは、プログラムに組み込まれた と表現されます。

組み込みステートメントは、ホスト言語のステートメントを使用できる環境であれば、プログラム中のどこにでも入れることができます。 そのステートメントが SQL ステートメントであることを示すには、 各組み込みステートメントそれぞれの前に、以下のように 1 つ以上のキーワードを置く必要があります。

  • C、COBOL、PL/I、および RPG では、各組み込みステートメントそれぞれの前には、キーワード EXEC と SQL がなければなりません。
  • Java™ では、各組み込みステートメントそれぞれの前には、キーワード #sql がなければなりません。
  • REXX では、組み込みステートメントそれぞれの前には、キーワード EXECSQL がなければなりません。

実行可能ステートメント

アプリケーション・プログラムに組み込まれた実行可能ステートメント は、同じ場所にホスト言語のステートメントが指定されていればそのホス ト言語ステートメントが実行されることになるすべての時点で、実行されます。 つまり、ループの中にあるステートメントは、そのループが実行されるたびに実行されます。また、条件付き構造の中にあるステートメントは、その条件が満たされた場合にのみ実行されます。

組み込みステートメントでは、変数を参照することができます。 組み込みステートメントでは、以下の 2 つの目的で変数を参照します。

  • 入力として使用する (ステートメントの実行時に変数の現行値を使用する)。
  • 出力として使用する (ステートメントの実行結果として、変数に新しい値を割り当てる)。

特に、式や述部内の変数の参照は、すべて、それらの変数の現行値によって実際に置換されます。つまり、それらの変数は入力として使用されます。 その他の参照の扱い方については、ステートメントごとに個別に説明します。

SQL 戻り状態または SQL 戻りコードのテストで、すべての実行可能ステートメントをたどります。代わりに、WHENEVER ステートメント (このステートメント自体は実行不能ステートメント) を使用して、組み込みステートメントの実行直後の制御の流れを変えることができます。

SQL ステートメントで参照しているオブジェクトは、ステートメントを準備する時点では存在していなくても構いません。

実行不能ステートメント

組み込み実行不能ステートメントは、プリコンパイラーによってのみ処理されます。 そのステートメントで検出されたすべてのエラーは、プリコンパイラーによって報告されます。実行不能ステートメントは、決して実行されることはありません。 アプリケーション・プログラムの実行可能ステートメントの中に、実行不能ステートメントが入っている場合、その実行不能ステートメントはノー・オペレーションとして扱われます。 したがって、そのようなステートメントに続けて、SQL 戻りコードのテストを行ってはなりません。