首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

为何ADODB ConnectionTimeout设置了没效果

2013-01-05 
为什么ADODB ConnectionTimeout设置了没效果我要判断某一个服务器是否能连接,但是要控制时间,2s内如果不能

为什么ADODB ConnectionTimeout设置了没效果
我要判断某一个服务器是否能连接,但是要控制时间,2s内如果不能连接我就返回连接失败

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的)
请问这是怎么回事?有没有解决办法
[解决办法]
好像是默认时间改不了的,好多人都遇到这个问题,不知道什么原因。用别的方法来实现吧,可以多一个多线程,在主程序链接数据库之前启动一个不占用任务栏的进程,每一秒中响应一次事件,如何几秒内没有接受到链接成功的信息回复,可以认为未链接成功,提示信息。。
[解决办法]
引用:
我要判断某一个服务器是否能连接,但是要控制时间,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 属性对执行进行配置

热点排行