利用变量代替数据表中的某个字段进行模糊查询:
var1:=ComboBox1.Text;
var2:=Edit1.Text;
SQL.Text:=format('select * from 商品信息 where %s like %''%s''%',[var1,var2]);
该语句编译通过但执行时出现异常
有人认为可以这样:
ADOQuery1.Parameters.Items[]:=%var2%;
或者
ADOQuery1.SQL.Text:='select * from 商品信息 WHERE var1 LIKE :var2';
但是这样的方案都解决不了问题
请问哪位高手能够指点啊?
var1:=ComboBox1.Text;
var2:=Edit1.Text;
SQL.Text:=format('select * from 商品信息 where %s like %''%s''%',[var1,var2]);
该语句编译通过但执行时出现异常
有人认为可以这样:
ADOQuery1.Parameters.Items[]:=%var2%;
或者
ADOQuery1.SQL.Text:='select * from 商品信息 WHERE var1 LIKE :var2';
但是这样的方案都解决不了问题
请问哪位高手能够指点啊?
不知道这样可以不!
ADOQuery1.SQL.Text:='select * from 商品信息 WHERE ''var1'' LIKE '%''+var2+'''';
var2:=Edit1.Text;ADOQuery1.SQL.Text:='select * from 商品信息'+
' WHERE '+''''+var1+''''+' LIKE '+''''+var2+'''';
var
t:string;//T为字段变量,即按什么字段来查询
begin
case ComboBox2.ItemIndex of
0:t:='khdm';
1:t:='khxm';
2:t:='lxfs';
3:t:='dwdz';
4:t:='cpx';
5:t:='zjbh';
6:t:='jxpz';
7:t:='bz'
end;//end case
with dm.ADOQuery1 do begin
Close;
sql.Clear;
sql.Add('select * from khxxtb where '+t+' like ''%'+Trim(edit7.Text)+'%''');
Open;
end;//end with
end;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~