求教数据库重连问题

echoes1976 2004-12-14 07:08:06
仅仅采用了TADOConnection 和TADOQuery,定时进行查询,第一次连接没有问题。
但是当数据库读取出错之后,就再也无法查询了。
就算在读取数据之前判断是否已连接以确定是否重连,第二次连接还是无法成功。
但是,当我进行调试的时候,单步运行,而且每步停顿一会儿,有的时候却能够成功。
请问这是什么原因?怎么样才能进行重连。
我的代码:
TADOConnection *DB;
TADOQuery *QStock;

……
TADOQuery *Q ;

……

if (!DB->Connected)
{
DB->Close();
DB->Open() ;
}
Q = QStock ;
Q->Close() ;
Q->SQL->Clear() ;
Q->SQL->Add(sql) ;
Q->Open() ;

其中QStock和DB都是在设计时就设计好的控件,而Q是在查询时才定义的一个变量。
我用的是access数据库,当同时进行十几个连接时就会出错,然后无法重连了
急求回答,在线等。非常感谢!!!
...全文
94 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
milkwayhong 2004-12-20
  • 打赏
  • 举报
回复
不过你可以试试在数据库连接以后关闭数据库的服务,看看会有什么问题!
一般要出错的,很有可能数据库服务停止的!!!
mobilepig 2004-12-20
  • 打赏
  • 举报
回复
这都搞不定,keepconnection为了保持连接,当然需要设置了。
呵呵,给分
echoes1976 2004-12-15
  • 打赏
  • 举报
回复
多谢关注!
问题我自己解决了,
bmwyc(汗血宝马) ,一个和两个是一样的。
sxzqlzx() ,c++ uilder 中DB- >Close();是没有问题的,即使已经断开。

解决方法:我一开始没有设置keepconnection,后来我将keepconnection设置成ture,
就可以重新连接了。只是解决了,但是不知道为什么会这样?知其然而不知其所以然。

过两天就结帖子,看是否有人能够为我答疑解惑。

samchoy 2004-12-15
  • 打赏
  • 举报
回复
关注
sxzqlzx 2004-12-15
  • 打赏
  • 举报
回复
if (!DB->Connected)
{
DB->Close(); //已经是不连接的状态了,调用Close会有错误的
DB->Open() ;
}
特招 2004-12-15
  • 打赏
  • 举报
回复
up
bmwyc 2004-12-14
  • 打赏
  • 举报
回复
不知楼主为何要用两个TADOQuery??
一个就可以了啊!
直接用你的Q连,QStock不需要了!

1,178

社区成员

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

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