ステートメント内でのパラメーターの使用Adobe AIR 1.0 およびそれ以降 SQL ステートメントパラメーターを使用すると、再利用可能な SQL ステートメントを作成できます。ステートメントパラメーターを使用する場合、ステートメント内の値は変わっても(INSERT ステートメントの追加される値など)、基本的なステートメントテキストは変わりません。その結果、パラメーターを使用することでパフォーマンスが向上し、アプリケーションのコーディングも容易になります。 ステートメントパラメーターについてアプリケーションで 1 つの SQL ステートメントが、小さな変更を加えながら何度も使用されることがよくあります。例えば、ユーザーが新しい在庫品目をデータベースに追加できる在庫追跡アプリケーションでは、在庫品目をデータベースに追加するアプリケーションコードで、データを実際にデータベースに追加する SQL INSERT ステートメントが実行されますが、このステートメントは実行のたびに多少変更されます。テーブルに挿入される実際の値は、追加される在庫品目に固有の値であるため、毎回異なるからです。 このように異なる値で何度も使用される SQL ステートメントがある場合は、SQL テキスト内にリテラル値の代わりにパラメーターを含む SQL ステートメントを使用することをお勧めします。パラメーターは、ステートメントが実行されるたびに実際の値に置き換えられるステートメントテキスト内のプレースホルダーです。SQL ステートメント内でパラメーターを使用するには、SQLStatement インスタンスを通常どおりに作成し、text プロパティに割り当てる実際の SQL ステートメントで、リテラル値の代わりにパラメータープレースホルダーを使用します。各パラメーターの値は、SQLStatement インスタンスの parameters プロパティの要素の値を設定して定義します。parameters プロパティは連想配列であるため、特定の値を設定するには次のシンタックスを使用します。 statement.parameters[parameter_identifier] = value; parameter_identifier は、名前付きパラメーターを使用する場合は文字列で、名前のないパラメーターを使用する場合は整数インデックスです。 名前付きパラメーターの使用パラメーターは、名前付きパラメーターにすることができます。名前付きパラメーターには、パラメーター値をステートメントテキスト内のそのプレースホルダーの場所に対応させるためにデータベースで使用される特定の名前があります。パラメーター名は、「:」または「@」の文字と、それに続く名前で構成されます。以下に例を示します。 :itemName @firstName 次のコードリストは、名前付きパラメーターの使用方法を示しています。 var sql:String = "INSERT INTO inventoryItems (name, productCode)" + "VALUES (:name, :productCode)"; var addItemStmt:SQLStatement = new SQLStatement(); addItemStmt.sqlConnection = conn; addItemStmt.text = sql; // set parameter values addItemStmt.parameters[":name"] = "Item name"; addItemStmt.parameters[":productCode"] = "12345"; addItemStmt.execute(); 名前のないパラメーターの使用名前付きパラメーターの代わりに、名前のないパラメーターを使用することもできます。名前のないパラメーターを使用する場合は、SQL ステートメント内で「?」文字を使用してパラメーターを表します。ステートメント内の順番に従って、0 から始まる数値インデックスが各パラメーターに割り当てられます。次の例では、先ほどの例が、名前のないパラメーターを使用するように変更されています。 var sql:String = "INSERT INTO inventoryItems (name, productCode)" + "VALUES (?, ?)"; var addItemStmt:SQLStatement = new SQLStatement(); addItemStmt.sqlConnection = conn; addItemStmt.text = sql; // set parameter values addItemStmt.parameters[0] = "Item name"; addItemStmt.parameters[1] = "12345"; addItemStmt.execute(); パラメーターを使用するメリットSQL ステートメントでパラメーターを使用すると、次のようなメリットがあります。
|
|