数据库访问错误: Connection is busy with results for another hstmt.

yongdu 2000-07-21 01:22:00
有两个CRecord的派生类,分别是一个数据库的两个表的记录集,有如下代码:
class CReCordA : public CReCord
......
class CReCordB : public CReCord
......

CReCordA rea;
rea.open()
....
try{
rea.requery();
while(!rea.IsEof())
{
.....
CReCordB reb;
reb.open(...) //程序运行到此处异常,报错误信息。
reb.requery()
....
}
}
catch()
{......
}

但此错误有时出现,有时又不会出现,我该如何解决。。
...全文
349 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhangChengGang 2000-08-04
  • 打赏
  • 举报
回复
这样可以吗:
CReCordA rea;
rea.open(...)
....
try{
rea.requery();
CReCordB reb(&YourDatabase);
reb.open(...) //程序运行到此处异常,报错误信息。
while(!rea.IsEof())
{
.....
reb.requery()
....
reb.Close();
}
}
catch()
{......
}
rea.close()
yongdu 2000-08-04
  • 打赏
  • 举报
回复
你谁怪不怪,这两天程序又不报错误了!
ZhangChengGang的方法我试试!
谢谢ZhangChengGang!
谢谢VCMFC!
vcmfc 2000-07-28
  • 打赏
  • 举报
回复
不是说的很清楚吗,其实发生这种情况一般是使用Select的SQL 语句,而使用Update,insert,delete都不会发生这种情,只有在使用Select语句后,如何请语句返回结果集,那么在使用第二次SQL 语句时必须先关闭这个查询句柄,关闭并不释放该句柄。据说如果使用Orace或sybase的数据库是不会发生这种情况,但我是使用SQL SERVER,Orace与SYBASE没用过,所以只能供参考.
yongdu 2000-07-25
  • 打赏
  • 举报
回复
谢谢hvcmfc, hibor, 但能给我解释一下我的错为何有时出错,有时又不出错?
yongdu 2000-07-24
  • 打赏
  • 举报
回复
对,我用的是MS SQLSERVER。。..

我上面的代码略写了CLOSE

CReCordA rea;
rea.open(...)
....
try{
rea.requery();
while(!rea.IsEof())
{
.....
CReCordB reb;
reb.open(...) //程序运行到此处异常,报错误信息。
reb.requery()
....
reb.Close();
}
}
catch()
{......
}
rea.close()

难道rea在没close前就不能用reb了???? 我没有办法呀,在while中我得用reb..?
vcmfc 2000-07-24
  • 打赏
  • 举报
回复
hibor说得不错,在ODBC API 中,一个连接下派生的多个查询句柄下只能一个为活动的,而且在这个句柄下如何用了两个SELECT 且都返回结果集的话,在执行第二个之前要先关闭该句后再进行下一个查询。如何要同时使用多个查询的话,应使用多个连接来实现.
hibor 2000-07-22
  • 打赏
  • 举报
回复
我在用Java-Jdbc时也会出现这种类似的问题,我估计你用的是MS-SQL-SERVER这个该死的数据库。
在一次Connection之后里只能有一个Statement处于活动也就是每个Statement生成的结果集用过之后要显示的Close才能正确操作。而其它数据库就如:ORACLE就没得这种规定,似乎连ACCESS都没这种限制.
zzh 2000-07-21
  • 打赏
  • 举报
回复
首先你应该使用一个CDatabase对象,然后再构造CRecordset的时候,加入数据库,如下所示:
CDatabase db;
db.Open();
CRecordset m_Set(&db);
这样就可以保证数据库的唯一性了。还有一个可能,你在对表的操作完成后没有把它关闭。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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