如果不对,权当灌水:) with Query do begin CLose; with SQL do begin Clear; Add('select * from TableName where xm like := Value or xh like :Value2 or nl like :Value3'); end; Params.Items[0].AsString := Edit1.Text;//BDE ....//BDE Parameters.Items[0] . AsString := '%' + Edit1.Text + '%';//ADO ...//ADO Open; //就这样了; end; eng;
如sabre(沙漠军刀)所說 if edit1.text<>'' or edit2.text<>'' or edit3.text<>'' then begin With Query1 do begin sql.clear; sql.Add('Select * from mytable'); sql.Add('where 1=1'); <-------- 注意這行的用途 if Edit1.text <> '' then sql.Add('and 姓名 ='+ edit1.text); if Edit2.text <> '' then sql.Add('and 年龄 ='+ edit2.text); if Edit3.text <> '' then sql.Add('and 学号=' + edit3.text); prepare; open; end; end;
with Query do
begin
CLose;
with SQL do
begin
Clear;
Add('select * from TableName where xm like := Value or xh like :Value2 or nl like :Value3');
end;
Params.Items[0].AsString := Edit1.Text;//BDE
....//BDE
Parameters.Items[0] . AsString := '%' + Edit1.Text + '%';//ADO
...//ADO
Open;
//就这样了;
end;
eng;
if edit1.text<>'' or edit2.text<>'' or edit3.text<>'' then
begin
With Query1 do begin
sql.clear;
sql.Add('Select * from mytable');
sql.Add('where 1=1'); <-------- 注意這行的用途
if Edit1.text <> '' then
sql.Add('and 姓名 ='+ edit1.text);
if Edit2.text <> '' then
sql.Add('and 年龄 ='+ edit2.text);
if Edit3.text <> '' then
sql.Add('and 学号=' + edit3.text);
prepare;
open;
end;
end;