就是在adoquery上如何在第一次的基础上进行第二次查询,甚至第3次……
就是说多个可以选的控件checkbox,我可以选一项进行查询,也可以选很多!
关键问题是在sql里面的where的连接怎么处理!!
就是说多个可以选的控件checkbox,我可以选一项进行查询,也可以选很多!
关键问题是在sql里面的where的连接怎么处理!!
解决方案 »
- 如何将Excel中的数据复制粘贴到DBGridEH中?
- 求一加密函数,改变原字符串一个字符,加密后的字符串变化越大越好。
- DBGRID在数据库添加了记录后不能显示出新记录?
- 从已有的控件继承编写控件时,如何才能屏蔽父类已经Published了的属性呢?。。。。。
- 在哪儿能下载到delphi5开发人员指南的附书源码?
- 急!800分求《试题库管理系统》 详情见贴!!
- 如何写一个Print函数
- 难道就没有下载delphi企业版的地方?
- 注册表的问题--请进
- 小弟得到一个管理软件的全部源代码(delphi+sql7),可就是---------
- 一个简单的问题?
- 如果把该dephi语句改为c++,应该不难的。
var str1, ... strN :string;//每个对应一个CheckBox
begin
if checkboxXi.checked then
begin
str1 := ' fieldname = YourDefine';
end
else
begin
str1 := '';
end;
...
result := str1 + ' and ' + ... + strN;//根据需要自己改。end;
beging
str:='select * from table where';
if checkbox1.check then
str := str + '....';
if checkbox2.check then
str := str +.........
.....
adoquery1.close;
adoqueyr1.sql.clear;
adoquery1.sql.add(str);
adoquery1.open;
比如回复人: HeLiang7(阿亮) 所说:如果str2或者后面随便哪个为空的话,adoquery会出现错误!
回复人: w78z(学之小妹妹) 所说:你的意思跟上面哪个差不多!
方案一:function QuesCondition: string;
var str1, ... strN :string;//每个对应一个CheckBox
begin
if checkboxXi.checked then
begin
str1 := ' fieldname = YourDefine';
//从str2开始,这里写成str1 := ' And fieldname = YourDefine';
//空格方面的问题你自己调一下
end
else
begin
str1 := '';
end;
...
result := str1 + ... + strN;//不加AND,AND已经在str中写了end;方案二:function QuesCondition: string;
var str1, ... strN :string;//每个对应一个CheckBox
begin
if checkboxXi.checked then
begin
str1 := ' fieldname = YourDefine';
//空格方面的问题你自己调一下
end
else
begin
str1 := ' fieldname = %' ;//这里的%表示你数据库中SQL语句可以识别的通配符
end
...
result := str1 + ' and ' + ... + strN;//此处都加上AND,因为条件都不为空end;