Queryでパラメータを指定する
TQueryで外部からパラメータを渡すことができる SQLを書くには、SQL内でその項目の先頭に :コロンを付けます。
以下の SQLでは :NAMEがパラメータです。
| ■ パラメータを使用した SQLの例 |
SELECT
NAME,WEIGHT,AREA,BMP
FROM
"animals.dbf" Animals
WHERE
NAME = :NAME
|
フォーム上でパラメータを使用する SQLを定義した場合はこの後、さらに TQueryの Paramsプロパティを開き、各パラメータの DataTypeと ParamTypeを指定します(これは必須ではありません)。DataTypeはパラメータの型です。ParamTypeはその引数が INなのか INOUTなのかなどを指定します。普通は ptInputです。
| ■ パラメータつき SQLを使用した例 |
procedure TForm1.Button1Click(Sender: TObject);
begin
with Query1 do begin
Close;
if Prepared then UnPrepare;
//パラメータに Boaを設定
ParamByName('NAME').AsString := 'Boa';
Prepare;
//NAMEが Boaのレコードを抽出します
Open;
{
SELECT
NAME,WEIGHT,AREA,BMP
FROM
"animals.dbf" Animals
WHERE
NAME = 'Boa'
}
end;
end;
|
パラメータに指定できる項目は条件文の右辺のものだけです。フィールド名や演算式をパラメータにすることは出来ません。
| ■ これはダメ |
SELECT * FROM
TABLENAME
WHERE
:NAME1 = :NAME2
|