当数据库不能正常连接时,直接用下面的语句进行连接,需要待很长时间才能返回错误消息。
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=RoomProd;Data Source=192.168.2.13能否有什么语句,可以快速检测到数据库是否能正常连接?谢谢
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=RoomProd;Data Source=192.168.2.13能否有什么语句,可以快速检测到数据库是否能正常连接?谢谢
是想在访问SQL Server的时候,如果有访问不到数据库的时候,能快快速返回错误消息,而不是需要等待很长时间。
是 ConnectionTimeout 吧
ConnectionTimeout=5
即表示5秒钟内与数据库连接上不上就有错误返回吧?
但我设置了,没有起任何做用,还是要等几分钟之久,还不知道怎么解决
一个思路,就是用异步连接,在循环中判断是否超时,超时用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