Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » Embedded SQL » 静的 SQL と動的 SQL

 

動的 SQL 文

C 言語では、文字列は文字の配列に格納されます。動的文は C 言語の文字列で構成されます。この文は PREPARE 文と EXECUTE 文を使用して実行できます。この SQL 文は静的文と同じようにしてホスト変数を参照することはできません。C 言語の変数は、C プログラムの実行中に変数名でアクセスできないためです。

SQL 文と C 言語の変数との間で情報をやりとりするために、「SQLDA」 (「SQL Descriptor Area」) 構造体が使用されます。EXECUTE 文の USING 句を使ってホスト変数のリストを指定すると、SQL プリプロセッサーが自動的にこの構造体を用意します。ホスト変数のリストは、準備文の適切な位置にあるプレースホルダーに順番に対応しています。

「プレースホルダー」は文の中に置いて、どこでホスト変数にアクセスするかを指定します。プレースホルダーは、疑問符 (?) か静的文と同じホスト変数参照です (ホスト変数名の前にはコロンを付けます)。ホスト変数参照の場合も、実際の文テキスト内のホスト変数名は SQLDA を参照することを示すプレースホルダーの役割しかありません。

データベースに情報を渡すのに使用するホスト変数を「バインド変数」と呼びます。

 例
 SQLDA の内容
 インジケーター変数と NULL
 参照