VB6中ADO调用存储过程如何实现异步
编号:QA003651
建立日期: 2000年12月11日 最后修改日期:2000年12月11日
所属类别:
陈开宏:
操作系统:WIN
编程工具:VB
问题:VB6中ADO调用存储过程如何实现异步?我在ADO中执行存储过程时,发现客户端显示出当前界面死机的状态。由于存储过程很长,费时也很长。我想在存储过程执行中,在前台同时运行进度条,显示当前并没有死机而是正在运行,不知如何处理?
回答:
要用VB实现ADO的异步查询,不能直接查询,如果你的应用程序是两层(服务层或数据层应该是ActiveX EXE)或三层,可以解决。否则,可以另外编写一个ActiveX EXE,通过这样一个中间部件查询数据库,也可以实现异步。实现方法(已下将服务/业务/数据或另外的ActiveX exe称作"中间层"):
对于费时的查询,在中间层的方法中,不直接查询,而是将查询任务和参数放到一个队列中,如果计时器未打开,则打开计时器,并结束本过程(开始查询前,已从中间层返回)。
在中间层的Timer事件中,检查任务队列,如果空,则关闭计时器,否则,从队列中取出一个任务,并执行查询,查询结束后,用事件或回调,将查询结果返回客户层,并检查队列是否为空(未空则继续执行下一个任务...)。在中间层对象的事件或回调过程中,处理数据(如设置控件数据源、向控件装载数据) 。
傻儿 VB 园http://usevb.yeah.net
相关问题:
QA001808 "如何在ADO中用异步的方式打开一个RecordSet"
此问题由傻儿回答。
| |
|
|
| |
|
|