大家来看看我的数据库连接出了什么问题!!!!!!!!!!

chaojiyeren1 2005-04-25 09:59:34
本人用的是adoquery连接数据库,在执行select语句的时候(使用open函数),发现如果查询返回接过的话,同一条语句可以执行许多遍而不报错,但是,如果试该语句不返回接过的话(没有查找到符合条件的记录),只能执行一次,第二次执行该语句的时候,便会报错:project project1.exe raised exception class EOleException with message 'BOF或EOF中有一个是"真“,或者当前的记录已被删除,所需的操作要求一个当前的纪录。我连接的数据库试sql server 2000。每次执行查询前我执行的语句为:ADOQuery1->Active=false;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sql1);
ADOQuery1->Open();
ADOQuery1->Active=true;
...全文
109 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishimin00 2005-04-25
  • 打赏
  • 举报
回复
这种情况最好用存储过程
在存储过程中做判断
不管是用什么连接数据库,只要SELECT的查询为空就会出你这个问题
所以你用存储过程提前做好判断,就不会造成程序出错了
僵哥 2005-04-25
  • 打赏
  • 举报
回复
要想知道有什么区别就看VCL的Delphi的源代码吧。
tbq_2004 2005-04-25
  • 打赏
  • 举报
回复
同意unsigned(僵哥) 的观点
我用oracle的时候也出现过这样的问题
但是我不知道ExecSQL()方法,跟Open()有什么具体的区别,
请高手指教!
谢谢!!!
longchaohui 2005-04-25
  • 打赏
  • 举报
回复
看来你没有去搜索啊,
如果你是用的cb5.0的话,
那么BOF或EOF就是个bug,
有补丁下载,
打个补丁就行了的。
如果是其他的版本的话,
就不得而知了
僵哥 2005-04-25
  • 打赏
  • 举报
回复
贴不一定要结,但是帮助一定要看。当然更需要懂得如何使用如www.google.com、www.baidu.com,好好学会拼写自己所需信息的【关键字】……
chaojiyeren1 2005-04-25
  • 打赏
  • 举报
回复
我用execsql()也试过,还是不行呀,同样的问题!!!!!!!!!!!!!
chaojiyeren1 2005-04-25
  • 打赏
  • 举报
回复
可能是我以前不注意结贴,呵呵,不过我现在开始已经重新做人了!!!!!!!!!!!!一定给分
僵哥 2005-04-25
  • 打赏
  • 举报
回复
int __fastcall ExecSQL(void);

Description

Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

ExecSQL returns an integer value reflecting the number of rows affected by the executed SQL statement.

Note: For SELECT statements, call Open instead of ExecSQL or set the Active property to true.

To speed performance, an application should ordinarily prepare the query by setting the Prepared property to true before calling ExecSQL for the first time.
僵哥 2005-04-25
  • 打赏
  • 举报
回复
没返回结果的使用ExecSQL()方法,而不用Open()
longchaohui 2005-04-25
  • 打赏
  • 举报
回复
楼主的信誉分好低啊,
看来你是基本上不揭帖的吧!
呵呵,
这样的话你的问题很少会有人来回答的哦!
不过我还是告诉你算了,
你去搜索一下吧,
你的这个问题是个比较出名的问题!^_^
chaojiyeren1 2005-04-25
  • 打赏
  • 举报
回复
呵呵,只打了cb的补丁,没打ado的补丁,打了就行了,呵呵,谢谢各位!!!!!!1
chaojiyeren1 2005-04-25
  • 打赏
  • 举报
回复
补丁已打,可是好像问题依旧呀!!!!!!!!!!!

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧