急问:一个关于ADOQuery的奇怪问题!!!(100分)

  • 主题发起人 主题发起人 freesoaring
  • 开始时间 开始时间
F

freesoaring

Unregistered / Unconfirmed
GUEST, unregistred user!
最近用ADOQuery遇到一个怪问题,代码如下:
adoquery1.close;
adoquery1.sql.text:='select * from table1 where number=1';
adoquery1.open;
说明:当上面的查询为空时,如果再写adoquery1.close;就出错!
系统提示:Bof或Eof有一个为真,或者当前记录被删除所以出错。
但我怎么解决呀,难道返回的结果集为空后,该控件就不能close再使用了吗?
 
是ado的Bug.
到以下兩貼找補丁的下載地址及打補丁的方法。
http://delphibbs.com/delphibbs/dispq.asp?lid=978072

http://delphibbs.com/delphibbs/dispq.asp?lid=968814
 
adoquery1.close;
adoquery1.clear
adoquery1.sql.text:='select * from table1 where number=1';
adoquery1.prepare
adoquery1.open;
 
delphi5的话就装补丁,毫无疑问。
 
如果你用的是d5,而且没有升级的话那肯定是Delphi5的bug
去下载个升级包就可以了
我这里有如果要可以给你

 
这个问题你真是应该先找找的。用adoexpress不如用ado原生对象。
 
我敢肯定,你用的一定是SQL SERVER 2000或安装了MDAC 2.6。
  升级DELPHI的ADO组件吧!INPRISE早已发布了升级包了。
 
其实用ADO原生对象也不错的,没有这些问题。这些问题都是因为
delphi的adoexpress封装的ado2.1造成的,一般现在都用ado2.5,ado2.6,2.7了。
 
多人接受答案了。
 
后退
顶部