C 言語では、文字列は文字の配列に格納されます。動的文は C 言語の文字列で構成されます。この文は PREPARE 文と EXECUTE 文を使用して実行できます。この SQL 文は静的文と同じようにしてホスト変数を参照することはできません。C 言語の変数は、C プログラムの実行中に変数名でアクセスできないためです。
SQL 文と C 言語の変数との間で情報をやりとりするために、「SQLDA」 (「SQL Descriptor Area」) 構造体が使用されます。EXECUTE 文の USING 句を使ってホスト変数のリストを指定すると、SQL プリプロセッサが自動的にこの構造体を用意します。ホスト変数のリストは、準備文の適切な位置にあるプレースホルダに順番に対応しています。
「プレースホルダ」は文の中に置いて、どこでホスト変数にアクセスするかを指定します。プレースホルダは、疑問符 (?) か静的文と同じホスト変数参照です (ホスト変数名の前にはコロンを付けます)。ホスト変数参照の場合も、実際の文テキスト内のホスト変数名は SQLDA を参照することを示すプレースホルダの役割しかありません。
データベースに情報を渡すのに使用するホスト変数を「バインド変数」と呼びます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |