TADOStoredProc异步执行怎么得到是否执行完毕?

zly1980 2009-03-19 01:41:37
一个线程使用一个ADOStoredProc1执行一存储过程,如果设置了ADOStoredProc1->ExecuteOptions=TExecuteOptions()<<eoAsyncExecute;
后,对于调用ADOStoredProc1->ExecProc();的线程来说是立即通过了的,但是这个时候存储过程并没有真的完成,那么当存储过程完成后,通过事件返回还是需要自己去判断某些对象的状态?
我将ADOStoredProc1的所有事件都写了代码,加上断点,ADOStoredProc1对应的CONNECTION对象也所有事件都写了代码,测试得到的结果是:只要异步执行,没有完成的事件被触发.
存储过程是很简单的SQLSERVER2000的:
CREATE PROCEDURE sp_test
AS
WAITFOR delay '00:00:13'
GO

哪位有异步调用经验可否说说?非常感谢!
我实际的需求是:一个线程执行存储过程的时候,如用户设了TIMEOUT限制,在规定的时间内如果存储过程没有执行完,这个线程可以自己检测到超时,如果不采用异步执行,那么在执行期间线程会挂死,不希望出现挂死的情况.
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangangs 2009-03-26
  • 打赏
  • 举报
回复
有点难度啊
stevenjscn 2009-03-20
  • 打赏
  • 举报
回复
多线程之间需用到同步。
我不懂电脑 2009-03-19
  • 打赏
  • 举报
回复
有窗口的情况下是有事件触发的。
TripH0101 2009-03-19
  • 打赏
  • 举报
回复
GZ
zly1980 2009-03-19
  • 打赏
  • 举报
回复
如果存储过程是
CREATE PROCEDURE sp_test
AS
declare @i int
while 1=1
begin
set @i=0;
end
GO
的话,超时属性是不生效的.
代码下载地址: https://pan.quark.cn/s/d56c0ac7d9f6 交流群 telegram: https://t.me/autosymlink_channel 文档 https://.com/shenxianmq/Auto_Symlink/wiki Auto_Symlink 小白牙整理 项目简介 是一个自动化工具,专门设计用于管理通过 CloudDrive2/Alist 挂载到本地的网盘。 它能够创建软链接,使得像 Emby/Jellyfin/Plex 这样的媒体服务器能够更容易地刮削和读取内容,同时减少对网盘的频繁访问。 主要特性: 实时监控: 需要CloudDrive2的会员功能文件通知,监控指定目录,自动进行必要的更新和管理。 自动化处理: 创建与更新软链接/strm文件,自动复制与更新元数据。 清理功能: 清空无效文件夹和软链接,保持本地云端一致性。 转存监控: 在常用工具中,自动监控指定文件夹,转移到目标文件夹,并删除源文件 媒体库通知: 支持Emby/Plex通知,当检测到新视频的时候,会自动通知Emby/Plex扫描该视频,极大加块扫库速度 封面制作: 自动生成精美的Emby媒体库封面 Web 界面操作: 提供一个简洁易用的Web界面,用于查看日志、编辑配置和监控系统状态。 这使得用户能够更方便地管理和调整 Auto_Symlink 的运行。 更多功能可以去常用工具中自行发掘. -- 安装和使用 直接运行 Python 文件: - 在首次运行后, 文件夹中会生成 文件。 根据文件中的注释进行配置。 - 配置完成后,使用命令 运行。 - 在 Windows 系统中,需要以管理员模式运行。 Docker 运行: 使用以下命令运行 Dock...

1,178

社区成员

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

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