procedure TFrm_ygcx.Edit2Change(Sender: TObject);
begin
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tem_em ');
SQL.Add('where py like :a');
parameters.ParamByName('a').Value:=Trim(Edit2.Text)+'%';
open;
end;
except
Application.MessageBox('请正确输入条件','提示',mb_ok);
end;
end;
上面实现了单字段的功能,后来我改为
procedure TFrm_ygcx.Edit2Change(Sender: TObject);
begin
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tem_em ');
SQL.Add('where py like :a or name like :a or bm like :a');
parameters.ParamByName('a').Value:=Trim(Edit2.Text)+'%';
open;
end;
except
Application.MessageBox('请正确输入条件','提示',mb_ok);
end;
end;
就只能查询第一个条件,如何改为多字段查询
begin
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tem_em ');
SQL.Add('where py like :a');
parameters.ParamByName('a').Value:=Trim(Edit2.Text)+'%';
open;
end;
except
Application.MessageBox('请正确输入条件','提示',mb_ok);
end;
end;
上面实现了单字段的功能,后来我改为
procedure TFrm_ygcx.Edit2Change(Sender: TObject);
begin
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tem_em ');
SQL.Add('where py like :a or name like :a or bm like :a');
parameters.ParamByName('a').Value:=Trim(Edit2.Text)+'%';
open;
end;
except
Application.MessageBox('请正确输入条件','提示',mb_ok);
end;
end;
就只能查询第一个条件,如何改为多字段查询
procedure TFrm_ygcx.Edit2Change(Sender: TObject);
begin
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tem_em ');
SQL.Add('where (py like ''%'+edit2.Text+'%''' +' or (Name like ''%'+edit2.Text+'%'')');
open;
end;
except
Application.MessageBox('请正确输入条件','提示',mb_ok);
end;
end;
try
with ADoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from tem_em ');
SQL.Add('where (py like ''%'+edit2.Text+'%'') or (empName like ''%'+edit2.Text+'%'')');
open;
end;
except
Application.MessageBox('请正确输入条件','提示',mb_ok);
end;
end;也不行,只对第一个条件也作用
SQL.Add('where py like :a or name like :a or bm like :a');
改为
SQL.Add('where py like :a or name like :b or bm like :c');
才可以
SQL.Add('where py+name+bm like :a');
这样来实现都可以
你的方法还是和我的一样,只能实现第一个字段的查询 我的意思是想在edit2中实现查询员工的拼音,工号,姓名的模糊查询,只要满足任何一个条件都显示出来
或者
SQL.Add('where name+py+bm like :a');
或者
SQL.Add('where bm+py+namelike :a');
都试过了,都只能查询第一个条件,也说明了值没有问题
select * from TABLE where p_name like '%台%' or nuit like '%台%'[itemno] [p_name] [tpye] [nuit]
AAAA 手提式防爆燈 BD-60S 台
BBBB 台式話筒 RM-370 只 只 沒問題啊