埋め込み SQL
DBMS に SQL ステートメントを送信する 1 つめの手法は、埋め込み SQL です。 SQL は変数やフロー制御ステートメントを使用しないため、C や COBOL などの従来のプログラミング言語で記述されたプログラムに追加できるデータベース サブ言語としてよく使用されます。 埋め込み SQL の中心となる考え方は、ホスト プログラミング言語で記述されたプログラムに SQL ステートメントを配置するということです。 簡単に言うと、ホスト言語に SQL ステートメントを埋め込むには、次の手法を使用します。
埋め込み SQL ステートメントは、特殊な SQL プリコンパイラによって処理されます。 SQL ステートメントはすべて導入子で始まり、終端文字で終わります。どちらもプリコンパイラ用に SQL ステートメントにフラグを付けるものです。 導入子と終端文字はホスト言語によって異なります。 たとえば、導入子は、C では "EXEC SQL"、MUMPS では "&SQL(" であり、終端文字は、C ではセミコロン (;)、MUMPS では右かっこです。
アプリケーション プログラムの変数は、ホスト変数と呼ばれており、定数が許可されている場所であればどこでも、埋め込み SQL ステートメント内で使用できます。 これらは、SQL ステートメントを特定の状況に合わせて調整する入力と、クエリの結果を受け取る出力で使用できます。
1 行のデータを返すクエリは、シングルトン SELECT ステートメントで処理されます。このステートメントでは、クエリと、データを返すホスト変数の両方を指定します。
複数行のデータを返すクエリは、カーソルで処理されます。 カーソルは、結果セット内の現在の行を追跡します。 DECLARE CURSOR ステートメントはクエリを定義し、OPEN ステートメントはクエリ処理を開始します。FETCH ステートメントは連続するデータ行を取得し、CLOSE ステートメントはクエリ処理を終了します。
カーソルが開いている間は、位置指定更新および位置指定削除ステートメントを使用して、カーソルによって現在選択されている行を更新または削除できます。
このセクションでは、次のトピックを扱います。