当数据库不能正常连接时,直接用下面的语句进行连接,需要待很长时间才能返回错误消息。
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=RoomProd;Data Source=192.168.2.13能否有什么语句,可以快速检测到数据库是否能正常连接?谢谢

解决方案 »

  1.   

    当数据库不能正常连接时,直接用下面连接字符串语句进行连接,需要待很长时间才能返回错误消息。
    是想在访问SQL Server的时候,如果有访问不到数据库的时候,能快快速返回错误消息,而不是需要等待很长时间。
      

  2.   


    是 ConnectionTimeout 吧
      

  3.   


    ConnectionTimeout=5
    即表示5秒钟内与数据库连接上不上就有错误返回吧?
    但我设置了,没有起任何做用,还是要等几分钟之久,还不知道怎么解决
      

  4.   

    因为有网络故障等原因,所以ConnectionTimeout会有可能无效...
    一个思路,就是用异步连接,在循环中判断是否超时,超时用cancel方法终止当前连接:Private Sub Command1_Click()
        
        Dim cnn As ADODB.Connection
        Dim strCnn As String
        Dim TimeOut As Date
        Dim Flag As Boolean
        
        Set cnn = New ADODB.Connection
        strCnn = "Provider=sqloledb;" & _
          "Data Source=server;Initial Catalog=pubs;User Id=sa;Password=; "
          
        cnn.Open strCnn, , , adAsyncConnect
        TimeOut = DateAdd("s", 5, Now)  '设置5秒连接时间
        Do While (cnn.State = adStateConnecting)
            'Debug.Print "connectioning...."
            If Now >= TimeOut Then
                Flag = True
                Exit Do
            End If
        Loop
        If Flag Then
            Print "连接失败"
        Else
            Print "连接成功"
        End If
        cnn.Cancel  '终止连接,这里有点耗时
        Set cnn = Nothing
        
    End Sub