热情软件屋

 

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"

此问题由傻儿回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio