如何进行组合查询?(50分)

  • 主题发起人 主题发起人 snowbow
  • 开始时间 开始时间
S

snowbow

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有5项条件,每一项都可以有或没有,仅根据有的项对表进行查询,可是我想即使这样
5项的所有可能就是5!=120种,如果条件在多几项那也太恐怖了,所以我想实际的组合查询
可能不是我想的这样,请教诸位了!
 
加个判断!
if 条件1 <> ''then
Sele_SQL := Sele_SQL + 字段1 = 条件1;
...
if 条件5 <> ''then
Sele_SQL := Sele_SQL + 字段5 = 条件5;
//------------------------------------
if Sele_SQL <> '' then
Sele_SQL := 'Select * from Table ' + 'where' + Sele_SQL
else
Sele_SQL := 'Select * from Table ';
 
同意楼上
 
到www.playicq.com找一个通用查询控件即可,在搜索里打“通用查询”
 
var
sWhere: string;
begin
with ADOQuery1 do
begin
try
close;
with SQL do
begin
Clear;
Add('Select 姓名,家电话 from 信息表');
if Edit1.Text<>'' then
sWhere:=sWhere+'姓名 like '''+Edit1.Text+'%'' and ';
if Edit2.Text<>'' then
sWhere:=sWhere+'家电话='''+Edit2.Text+''' and ';
if sWhere <>'' then
sWhere:='Where '+Copy(sWhere,1,length(sWhere)-5);
add(sWhere);
end;
Open;
except
ShowMessage('It Can''t Find Data!');
exit;
end;
end;
end;
 
谢谢大家,
 
后退
顶部