Public Sub ADO_connect()
On Error GoTo err
If IsconnectADO = True Then
   Exit Sub
End If
Set ADOsvr = New ADODB.Connection
ADOsvr.ConnectionTimeout = 100
ADOsvr.ConnectionString = "driver={SQL Server};server=SQLSVR;uid=USER;pwd=PASSWORD;"
ADOsvr.Open
IsconnectADO = True
Exit Sub
err:
   MsgBox "无法连接SQLServer数据库"
   ADO_disconnect
   Exit Sub
End Sub
以上是最常见的ADOSQL连接
当ADOsvr.Open的时候,系统在内网扫描SQL,程序会假死一段时间,通常在1秒-3秒,但如果SQL不存在,就要花6-10秒左右或更多时间,这个时间里程序不响应其他的操作,就算用了DoEvents也是没用,如何在这几秒时间里进行其他操作?有地方说用多线程,怎么做?或者怎么来缩短找不到SQL的返回时间,10多秒也太长了吧。

解决方案 »

  1.   

    ADOsvr.ConnectionTimeout 设为 4 之类刚好正常能链接的值
      

  2.   

    我把ADOsvr.ConnectionTimeout 设为 1 ,返回值在6-9秒不等,设为3,似乎也在8-10秒,总是没有SQL存在找到的返回快。SQL存在通常只要2秒就能返回。
      

  3.   

    如果是内网主机,且没有屏蔽ping,则可以先ping一下看看主机是否存在。
      

  4.   

    我也遇到这个问题,并且ConnectionTimeout这个参数好像不管用
      

  5.   

    http://topic.csdn.net/T/20051202/19/4434621.html