+ -
当前位置:首页 → 问答吧 → 为什么ADODB ConnectionTimeout设置了没效果

为什么ADODB ConnectionTimeout设置了没效果

时间:2011-08-15

来源:互联网

我要判断某一个服务器是否能连接,但是要控制时间,2s内如果不能连接我就返回连接失败
VB code
Public Function IsServerOK() As Boolean
   On Error GoTo err
   Dim conn As ADODB.Connection
   Set conn = New ADODB.Connection
   conn.ConnectionTimeout = 2 '设置连接超时,2s内无法连接视为服务器不可用
   conn.Open "Provider=SQLOLEDB.1;Persist Security Info=True;UID=sa;PWD=sa;Initial Catalog=TEST;Data Source=192.168.1.1" '连接服务器
   conn.Close
   Set conn = Nothing
   IsServerOK= True
   Exit Function
err:
   Set conn = Nothing
   IsServerOK= False
End Function


实际测试,无论怎么设ConnectionTimeout ,都要等30s左右才返回结果。(我记得默认是30s的)
请问这是怎么回事?有没有解决办法

作者: ThreeColor   发布时间: 2011-08-15

好像是默认时间改不了的,好多人都遇到这个问题,不知道什么原因。用别的方法来实现吧,可以多一个多线程,在主程序链接数据库之前启动一个不占用任务栏的进程,每一秒中响应一次事件,如何几秒内没有接受到链接成功的信息回复,可以认为未链接成功,提示信息。。

作者: Jesse621   发布时间: 2011-08-15

引用楼主 threecolor 的回复:
我要判断某一个服务器是否能连接,但是要控制时间,2s内如果不能连接我就返回连接失败

VB code
Public Function IsServerOK() As Boolean
On Error GoTo err
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Connec……

conn.ConnectionTimeout 影响的是Execute方法,没有影响Open
使用 Execute 方法执行对连接的命令,并使用 CommandTimeout 属性对执行进行配置

作者: worldy   发布时间: 2011-08-15

热门下载

更多