我们的前端连接了多个SQL服务器。我们需要一个测试来检查哪些服务器在任何时候都处于脱机状态。
以下代码与在线SQL服务器完全兼容,但在测试脱机时,需要超过30秒才能超时。我们需要更快地超时,因为这是一个定期运行的检查
Function ConTEST()
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim strConnect As String
strConnect = "DRIVER={SQL Server};SERVER=SERVER;UID=UID;PWD=PWD;APP=Microsoft® Windows® Operating System;DATABASE=DB_NAME"
With conn
.ConnectionString = strConnect
.CommandTimeout = 5
.ConnectionTimeout = 5
.Open
End With
End Function
非常感谢有关如何解决此超时问题的任何建议。
答案 0 :(得分:0)
如果它只是服务器上脱机的数据库,那么连接到" master"连接中的数据库,然后运行" DATABASEPROPERTYEX"函数来获取要检查的数据库的状态。
Dim rs As New ADODB.Recordset
With conn
.ConnectionString = strConnect
.CommandTimeout = 5
.ConnectionTimeout = 5
.Open
Set rs = .Execute("select DATABASEPROPERTYEX('yourdb', 'Status') as db_status")
Debug.Print rs(0).Value
.Close
End With
如果整个服务器脱机,您可能希望从命令行ping服务器。