在delphi7中我想实现具有多个相同属性的查询,应该怎么写代码?这是我写的代码,不过选出来的是或的关系

procedureTForm19.Button1Click(Sender:TObject);vari:integer;str1,str2,str3,sqlstr:stri... procedure TForm19.Button1Click(Sender: TObject);vari:integer;str1,str2,str3,sqlstr:string;beginstr2:='';for i:=0 to GroupBox1.ControlCount-1 do begin if GroupBox1.Controls[i] is TCheckBox then begin if TCheckBox(GroupBox1.Controls[i]).Checked then begin str1:=str1+TCheckBox(GroupBox1.Controls[i]).Caption; end; end; if str1<>'' then begin str2:=str2+'(select '+str1+' from 书籍信息维护 group by '+str1+' having count('+str1+')>1)union'; str1:=''; end; end; str3:=copy(str2,1,length(str2)-5); for i:=0 to GroupBox1.ControlCount-1 do begin if GroupBox1.Controls[i] is TCheckBox then begin if TCheckBox(GroupBox1.Controls[i]).Checked then begin str1:=str1+TCheckBox(GroupBox1.Controls[i]).Caption; end; end; if str1<>'' then begin break; end; end;
close; form10.adoquery1.SQL.Clear; sqlstr:='select * from 书籍信息维护 where '+str1+' in ('+str3+')'; form10.adoquery1.SQL.Add(sqlstr); form10.adoquery1.Open;end;

从这个表中选择属性的。
忘大神给指导指导!
展开
 我来答
hks554488
2014-09-21 · TA获得超过395个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:455万
展开全部
对每脊橡明一个选中的项目,分别如轿生成一个条件,然后你可以根据需要,使用and或者or连接起来。
str_where := '';
for i := 0 to GroupBox1.ControlCount - 1 do
begin
if TCheckBox(GroupBox1.Controls[i]).Checked then
begin
if str_where <>樱告 '' then
str_where := ' and ';
str_where := str_where + TCheckBox(GroupBox1.Controls[i]).Caption + ' in ' + QuotedString(str_value);
end;
end;
追问
str_where := str_where + TCheckBox(GroupBox1.Controls[i]).Caption + ' in ' + QuotedString(str_value);
这句话什么意思啊?麻烦你能给出完整代码吗?给你加分好吧!谢谢了!
追答
if str_where  '' then
str_where := ' and ';
改成:
if str_where '' then
str_where := str_where + ' and ';

str_where := str_where + TCheckBox(GroupBox1.Controls[i]).Caption + ' in ' + QuotedString(str_value);

这句代码的意思是:
在where条件中增加一个条件,新增加的条件是xx in yy,其中xx是勾选的某项,yy是前面用户输入的数据,形如“('abc', 'efg', 'qwer')”。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式