TQuery部件具有一个Params属性,它们在设计时不可用,在程序运行过程中可用,并且是动态建立的,当为TQuery部件编写动态SQL 语句时, Delphi 会自动地建立一个数组Params,数组Params是以0下标开始的,依次对应动态SQL 语句中的参数, 也就是说动态SQL语句中第一个参数对应Params[0],第二个参数对应params[1],依此类推。可在实际运行程序时,
例如:Query1.params[1].AsString := "Lichtenstein";
怎么将设置好的值赋值给SQL中的参数,运行结果就是不对!参与者每人5分,解决问题者100分喽!绝不食言!也可发教程或回复到我邮箱 [email protected]
例如:Query1.params[1].AsString := "Lichtenstein";
怎么将设置好的值赋值给SQL中的参数,运行结果就是不对!参与者每人5分,解决问题者100分喽!绝不食言!也可发教程或回复到我邮箱 [email protected]
begin
SQL.Clear;
SQL.Add('select * from Table1 where vcField1=:vcParam1 and vcField2=:Param2');
Params[0].AsString:='aa';
//也可以ParamByName('vcParam1').AsString:='aa';
Params[1].AsString:='bb';
//也可以ParamByName('vcParam2').AsString:='bb';
Active:=True;
end;
如果是在设计期就设计好了SQL的那一种:
with Query1 do
begin
Active:=False;//............
Params[0].AsString:='aa';
//也可以ParamByName('vcParam1').AsString:='aa';
Params[1].AsString:='bb';
//也可以ParamByName('vcParam2').AsString:='bb';
Active:=True;//..........
end;
begin
Close;
SQL.Clear;
SQL.Add('select * from Table where field1=:s1 and field2<:s2');
ParamsByName('S1').AsString:=Edit1.txt;
ParamsByName(S2').AsInteger:=i;
Open;
end;