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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere Embedded SQL » ホスト変数の使用

 

ホスト変数の宣言

ホスト変数は、「宣言セクション」で定義します。ANSI Embedded SQL 標準では、ホスト変数は通常の C の変数宣言を次のように囲んで定義します。

EXEC SQL BEGIN DECLARE SECTION;
/* C variable declarations */
EXEC SQL END DECLARE SECTION;

こうして定義されたホスト変数は、どの SQL 文でも値定数の代わりに使用できます。データベース・サーバが文を実行するときは、ホスト変数の値が使用されます。ホスト変数をテーブル名やカラム名の代わりに使用することはできません。その場合は動的 SQL が必要です。ホスト変数は、SQL 文の中では他の識別子と区別するために、変数名の前にコロン (:) を付けます。

SQL プリプロセッサは、DECLARE SECTION 内でのみ C 言語コードをスキャンします。したがって、DECLARE SECTION 内では TYPEDEF 型および構造体は使用できませんが、変数の初期化は行えます。

INSERT 文でホスト変数を使用するコード例です。プログラム側で変数に値を設定してから、データベースに挿入しています。

EXEC SQL BEGIN DECLARE SECTION;
long employee_number;
char employee_name[50];
char employee_initials[8];
char employee_phone[15]; 
EXEC SQL END DECLARE SECTION;
/* program fills in variables with appropriate values
*/
EXEC SQL INSERT INTO Employees
VALUES (:employee_number, :employee_name,
:employee_initials, :employee_phone );

さらに複雑な例については、静的カーソルのサンプルを参照してください。