TADOQuery的Open和Close配对问题

蒙飞鸿 2012-10-26 02:43:37
BCB6 使用TADOQuery,一次Open以后,可以任意继续ExecSQL和Open都不会出错,速度还挺快,而非要每次都在ExecSQL和Open之前Close,速度反倒慢了,这个现象怎么评价?主要是Close的配对问题,到底需不需要配对?
...全文
860 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
彼岸大灰狼 2012-11-10
  • 打赏
  • 举报
回复
刷新可以用ADOQuery->Refresh() 为什么非要OPEN来刷新?
bigfog 2012-11-01
  • 打赏
  • 举报
回复
那可以检测一下
if(ADOQuery1->Active){//我个人感觉这个判断没必要,直接设置Active=false;
ADOQuery1->Active=false;
}
蒙飞鸿 2012-11-01
  • 打赏
  • 举报
回复
其实关键不是速度,而是担心配对问题,现象是不用Close也可以多次Open,而在使用DBGrid的时候,又不可能即时为Open配对Close,每次Open之前写一个Close,如果是第一次Open那这个Close就又单着了.
ccrun.com 2012-10-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
把Close换成Active=false;会不会快点
[/Quote]

Close操作实质上就是将Active属性设为false了。
bigfog 2012-10-29
  • 打赏
  • 举报
回复
把Close换成Active=false;会不会快点
蒙飞鸿 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
open需要配对的close,
如果是open状态,不能给sql赋值

ExecSQL可以不要。
[/Quote]
情况是这样,窗口打开时需要"Select * from t1"来Open一次使得DBGrid出现内容,然后界面上有增加按钮需要"Insert xxxx"然后ExecSQL,然后再"Select * from t1"Open来刷新内容.ExecSQL是要的.
缘中人 2012-10-26
  • 打赏
  • 举报
回复
open需要配对的close,
如果是open状态,不能给sql赋值

ExecSQL可以不要。

1,178

社区成员

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

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