sql構文に変数は使えますか?

解決


godon  2007-09-04 01:20:18  No: 27649  IP: [192.*.*.*]

いつも大変お世話になっております。
下記のようにSQLに変数を入れて参照したいのですが
iにはデフォルト値がありませんとエラーがでます。
そもそもSQLに変数を含ませることは不可なのでしょうか?
接続はMDBです。
くだらない質問かと思いますがよろしくお願いします。

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
i:=3;
adoquery1.Active:=false;
adoquery1.SQL[0]:='select * from testtable where id=i';
adoquery1.Active:=true;
end;

編集    削除
Ru  2007-09-04 01:42:39  No: 27650  IP: [192.*.*.*]

パラメータとして使ってください。

adoquery1.Active:=false;
adoquery1.SQL[0]:='select * from testtable where id = :param1';
adoquery1.ParamByName('param1').AsInteger := i;
adoquery1.Active:=true;

編集    削除
Syake  2007-09-04 02:54:28  No: 27651  IP: [192.*.*.*]

こんなのは
    'SELECT * FROM testtable WHERE id = ' + IntToStr(i);
いかがですか?

編集    削除
godon  2007-09-04 03:27:47  No: 27652  IP: [192.*.*.*]

出来ました!
Ru様、Syake様、素早く回答していただき、ありがとうございました。
構文の意味は今から調べます。

編集    削除
godon  2007-09-04 03:29:03  No: 27653  IP: [192.*.*.*]

解決チェック忘れました。

編集    削除