用query组件能实现的查询功能,不知在adoquery中为什么实现不了?(50分)

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

shgproduct

Unregistered / Unconfirmed
GUEST, unregistred user!
adoquery能否实现这样的功能:
SQL语句:
select * from ct01
where (ms02 = :ms02 or :ms02 = '$$$')
查询语句:
adoquery1.Close;
if trim(edit1.Text)<>'' then
adoquery1.Parameters.ParamValues['ms02']:=trim(edit1.Text)
else
adoquery1.Parameters.Parambyname('ms02').Value:='$$$';
adoquery1.Open;
注:用query组件能实现上述的查询功能,不知在adoquery中为什么实现不了?
 
adoquery能否实现这样的功能:
SQL语句:
select * from ct01
where (ms02 = :ms02 or :ms02 = '$$$')
查询语句:
应该这样实现!!!!!!!!!!!!!!!

adoquery1.Close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from ct01 1=1');
if trim(edit1.Text)<>'' then
begin
adoquery1.sql.add(' and ms02=:ms02');
adoquery1.Parameters.ParamValues['ms02']:=trim(edit1.Text)
end;
adoquery1.Open;
 
我的意思是当edit1没有选中时,查询的是全部的内容,选中后查询的才是当ms02等于trim(edit2.text)
时候的内容。
 
没错啊,我的这段程序完全可以实现你的要求呀。如果edit1.text=''成立,则adoquery
的SQL语句就是 'select * from ct01 1=1',此时选中的数据就是全部数据呀。
1=1 和 '$$$'='$$$' 有区别吗?不都是true吗?

你仔细看看代码,这么简单的逻辑你应该能看明白的,我就是看懂了你原来的意思才
帮你改写成现在的样子的呀。不信你可以试一下就知道了。

还有问题:QQ:584740 or MSN:truecat6108@hotmail.com
 
应该不是ADOQuery 的问题。自己多想想
 
很感谢各位的解答,我搞定了
 

Similar threads

后退
顶部