with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from ??? where 1=1');
if trim(edit1.text)<>'' then
sql.add(' and a like ''%'+trim(edit1.text)+'%''');
if ......
.....
open;
end;
建议你用一常字符串来记录条件
我不是发给你了吗?
为了省去判断是否为第一个条件,这么写吧
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from where 字段名<>...');//第一个条件在任何情况下都是满足的,这里为的是不用在后面有那么多判断。
if trim(edit1.text)<>'' then
begin
sql.add('and a like:bs1');
parameters.parabyname('bs1').value=trim(edit1.text);
end;
..........
end;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from ???');
if trim(edit1.text)<>'' then
sql.add('where a like ')+trim(edit1.text)+'%';
if ...... //where在什么地方加可以用一个布尔值来判断!
.....
open;
end;