回 帖 发 新 帖 刷新版面

主题:如何中止过长时间的查询??

我有一个SQL语句的查询,完全查出结果可能要耗时60多秒种,当执行到10几秒钟时,不想往下查了,怎么用VB命令去中止这个查询且不导致进程疆死??

回复列表 (共6个回复)

沙发

加一timer控件,应该可以.在查询按铵钮下interval=10000
timer事件下if 查询结果等于""调用form_load过程,再把interval设为0.

板凳

首先声明一个全局变量做中断标记:
Dim Abort As Boolean '中断标记
再在你的查询模块最后添加一个DoEvents语句,它可以转让控制权:


...'这是你的查询模块语句
DoEvents
If Abort Then Exit For '这是假定你的查询在For循环中进行,如果是Do循环,则是:Exit Do


然后在窗体或者某个控件的KeyDown事件中添加代码:
if KeyCode=27 then Abort=true '假设按[Esc]键退出查询

或者是在[停止]按纽的单击事件中添加代码:

Private Sub command1_Click()
Abort = True
End Sub

3 楼

用timer控件会严重影响SQL查旬的速度,
一江秋水的方法看不太懂,不知如何实现.

不知是否还有其它可行办法?

4 楼

??

5 楼

比起如何终止SQL查询,倒不如想想怎么让查询更快来得好。

6 楼

这个不懂,没有听说过有这个功能

我来回复

您尚未登录,请登录后再回复。点此登录或注册