东东提问--怎样知道在线程中的sql查询何时结束?

wangxd 2001-11-23 05:35:20
我的sql查询放在线程之中,可我怎样才能知道何时这个查询结束呢?
注意:不是线程何时结束,是查询何时结束?
我发现当线程结束时,也就是当触发线程的onterminate事件时,查询并未结束。当然这对查询并没有影响,查询仍在后台继续执行,可我什么时候才知道这个查询结束了呢?
我要求在查询结束时,执行一个我的一个动作
...全文
181 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxd 2001-12-14
  • 打赏
  • 举报
回复
结束
wangxd 2001-12-02
  • 打赏
  • 举报
回复
继续
wangxd 2001-12-02
  • 打赏
  • 举报
回复
>>windindance(风之舞) 
问题是我不能为每个查询都定义一个存储过程吧,更何况库是别人的库
windindance 2001-12-02
  • 打赏
  • 举报
回复
我的方法试过没有?
在存储过程/查询最后抛一个异常
方法忘了,可以参考SQL里系统存储过程中抛出异常的方法
也许可以.
wangxd 2001-11-30
  • 打赏
  • 举报
回复
>>Xhunter(伙计) 
我用的是bde啊!
顺便问一下bde+sybase怎样打包?我用install shield for bcb不好使啊!注册表并没有写上相应的键值,要在install shield 中添上吗?我觉得应该是自动添加的。
Xhunter 2001-11-25
  • 打赏
  • 举报
回复

自定义事件
#define M_OutThread WM_USER+100
.....
void Out(TMEssage &msg);

BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(M_OutThread,TMessage,Out)
END_MESSAGE_MAP(TForm)

////////线程////////
#include "MainForm.h"
void __fastcall www::Execute()
{
.......
CoInitializeEx(NULL,COINIT_MULTITHREADED);//使用ADO
if(Maindlg->ISOK())//查询放在ISOK()中....
{
CoUninitialize();
PostMessage(MainForm->Handle,M_OutThread,0,0);

}
CoUninitialize();

.......
}
/////线程结束处理//////
void MainDlg::Out(TMessage &msg)
{
.....
}

windindance 2001-11-25
  • 打赏
  • 举报
回复
是这样啊
要么你在查询语句最后抛出一个SQL异常怎样?
ggyy 2001-11-25
  • 打赏
  • 举报
回复
当线程结束时,也就是当触发线程的onterminate事件时,查询并未结束????????
锁定所有的SQL查询,然后线程同步!
个人所见!!!
wangxd 2001-11-25
  • 打赏
  • 举报
回复
up up
duduwolf 2001-11-24
  • 打赏
  • 举报
回复
to wangxd
能否把你启线程进行sql查询的程序给我发一份,急需,先谢了!
ggyy 2001-11-24
  • 打赏
  • 举报
回复
昨天晚上的动动我没办法下载,怎么办???????????
ggyy 2001-11-24
  • 打赏
  • 举报
回复
定义事件
手动激活(SQL结束的时候)
手动关闭
wangxd 2001-11-24
  • 打赏
  • 举报
回复
>>windindance(风之舞) 
Query->OnAfterOpen并不是在查询结束后触发
>>knf(CTO-首席打字员) 
你在人少的时候试试看
请大家继续发言
handsome1234 2001-11-24
  • 打赏
  • 举报
回复
帮你台台
wangxd 2001-11-24
  • 打赏
  • 举报
回复
>>windindance(风之舞) 
如果你不用线程的话,OnAfterOpen确实是在查询结束后触发
如果你用线程的话,一旦你执行了query->open()后立刻OnAfterOpen触发,即使查询并没有完全结束,因为你是在线程中使用了查询,不管你查询的数据量多大使用了query->open()后,如果你在OnAfterOpen中定义了动作就会出错。
windindance 2001-11-24
  • 打赏
  • 举报
回复
>>wangxd(东东) 
不好意思,请问OnAfterOpen在什么事件后触发?
我的理解当查询结束,返回数据集后就会触发的。
knf 2001-11-23
  • 打赏
  • 举报
回复
东东,我想要你的那个语法解析和显示的控件,但是不能下载,怎么办?
windindance 2001-11-23
  • 打赏
  • 举报
回复
Query->OnAfterOpen

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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