主题:如何中止过长时间的查询??
阿平~~
[专家分:170] 发布于 2008-05-27 22:26:00
我有一个SQL语句的查询,完全查出结果可能要耗时60多秒种,当执行到10几秒钟时,不想往下查了,怎么用VB命令去中止这个查询且不导致进程疆死??
回复列表 (共6个回复)
沙发
jianghongbo1 [专家分:410] 发布于 2008-05-28 08:16:00
加一timer控件,应该可以.在查询按铵钮下interval=10000
timer事件下if 查询结果等于""调用form_load过程,再把interval设为0.
板凳
一江秋水 [专家分:9680] 发布于 2008-05-28 12:06:00
首先声明一个全局变量做中断标记:
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 楼
阿平~~ [专家分:170] 发布于 2008-05-28 21:59:00
用timer控件会严重影响SQL查旬的速度,
一江秋水的方法看不太懂,不知如何实现.
不知是否还有其它可行办法?
4 楼
阿平~~ [专家分:170] 发布于 2008-06-01 10:50:00
??
5 楼
bcahzvip [专家分:6040] 发布于 2008-06-05 11:04:00
比起如何终止SQL查询,倒不如想想怎么让查询更快来得好。
6 楼
a97191 [专家分:4040] 发布于 2008-06-05 16:56:00
这个不懂,没有听说过有这个功能
我来回复