ホスト変数は、「宣言セクション」で定義します。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 ); |
さらに複雑な例については、静的カーソルのサンプルを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |