ADOQuery的SQL语句参数不能为空串吗?(50分)

  • 主题发起人 主题发起人 netCobra
  • 开始时间 开始时间
N

netCobra

Unregistered / Unconfirmed
GUEST, unregistred user!
开发环境:Delphi5(已经安装了所有补丁) + Access2000
ADOQuery的SQL中有两个String型的参数,我对其中的一个参数赋值为空串(不是Null),然后
打开该ADOQuery后出错,提示“Parameter对象被不正确的定义。提供了不一致或不完整的信
息。”,但是如果赋的值不为空,则不会出问题。
请教一下这是怎么回事?难道不能这样赋值吗?

另外,请问怎样才能把一个Label的底色设为透明的?
 
label有一个属性tran....开头一

你把它设置为true就可以透明了,
 
在完整的Sql语句中,如果字段为空,那应该按如下处理:
select * from table where fieldname is null
所以用空字符串作为参数是不行的,建议先用变量保存要查找的字段值,再根据其是否为
空具体来写一个完整的SQL语句,将它赋给Query的Sql。
将Lable的transparent属性设为true即可将其底色设为透明。
 
为空的参数写为 '''' (四个 ')即可
 
adoquery 的SQL查询中字符串为空应该是能够通过的,你有没有试着检查一下数据库中该字段
的数据类型是否为字符型?
label底色透明可将其transparent的属性设置为true即可。
 
对transparant设为true
 
经常会碰到输入多个条件查询的情况,如果有条件为空,使用参数就无法实现。可行的办法
是写一个函数生成where子句。
 
这可就很惨了,Delphi在这点上头做的实在不好。
有时候是很难避免输入的参数为空的。
 
比如登录用户没有密码的情况。
 
明确的回复: 不可以
原因: 因为Parameter中定义的数据类型是Variat,赋值为空在实现类型转换时会出错。
其它变通的方法:自己来生成SQL语句。如sql.add('where name =''' + edit1.text +'''')
 
谢谢各位
 
后退
顶部