実行時でのパラメータ値の指定

提供: RAD Studio
移動先: 案内検索

クエリでのパラメータの使用 への移動


実行時にパラメータを作成するには、次のものを使用できます。

  • ParamByName メソッド -- パラメータ名に基づいて、パラメータに値を割り当てることができます(TADOQuery の場合は使用不可)。
  • Params プロパティまたは Parameters プロパティ -- SQL 文内でのパラメータの順序に基づいて、パラメータに値を割り当てることができます。
  • Params.ParamValues プロパティまたは Parameters.ParamValues プロパティ -- 各パラメータ セットの名前に基づいて、単一コマンド ライン内の 1 つ以上のパラメータに値を割り当てることができます。

次のコードでは、ParamByName を使用して、編集ボックス内のテキストを :Capital パラメータに割り当てています。

SQLQuery1.ParamByName('Capital').AsString := Edit1.Text;
SQLQuery1->ParamByName("Capital")->AsString = Edit1->Text;

同じコードを Params プロパティとインデックス 0 を使って書き直すと、次のようになります(:Capital パラメータが SQL 文の先頭パラメータであると仮定します)。

SQLQuery1.Params[0].AsString := Edit1.Text;
SQLQuery1->Params->Items[0]->AsString = Edit1->Text;

次のコードでは、Params.ParamValues プロパティを使って、3 つのパラメータを一度に設定しています。

Query1.Params.ParamValues['Name;Capital;Continent'] :=
  VarArrayOf([Edit1.Text, Edit2.Text, Edit3.Text]);
Query1->Params->ParamValues["Name;Capital;Continent"] =
  VarArrayOf(OPENARRAY(Variant, (Edit1->Text, Edit2->Text, Edit3->Text)));

上記で、値をキャストしなくてもよいように ParamValues でバリアントが使用されている点に注意してください。

関連項目