请教如何返回 ADODB.Connection 的状态是 open 还是 close
请教如何返回 ADODB.Connection 的状态是 open 还是 close
[解决办法]
State 属性
对所有可应用对象,说明其对象状态是打开或是关闭。
对执行异步方法的 Recordset 对象,说明当前的对象状态是连接、执行或是获取。
返回值
返回下列常量之一的长整型值。
常量 说明
AdStateClosed 默认,指示对象是关闭的。
AdStateOpen 指示对象是打开的。
AdStateConnecting 指示 Recordset 对象正在连接。
AdStateExecuting 指示 Recordset 对象正在执行命令。
AdStateFetching 指示 Recordset 对象的行正在被读取。
说明
可以随时使用 State 属性确定指定对象的当前状态。该属性是只读的。
Recordset 对象的 State 属性可以是组合值。例如,如果正在执行语句,该属性将是 adStateOpen 和 adStateExecuting 的组合值。
ConnectionString、ConnectionTimeout 和 State 属性范例
该范例说明了使用 ConnectionString 属性打开 Connection 对象的不同方法。同时还使用 ConnectionTimeout 属性设置连接超时时间,并使用 State 属性检查连接的状态。该过程运行时需要 GetState 函数。
Public Sub ConnectionStringX()
Dim cnn1 As ADODB.Connection
Dim cnn2 As ADODB.Connection
Dim cnn3 As ADODB.Connection
Dim cnn4 As ADODB.Connection
' 不使用数据源名 (DSN) 打开连接。
Set cnn1 = New ADODB.Connection
cnn1.ConnectionString = "driver={SQL Server}; " & _
"server=bigsmile;uid=sa;pwd=pwd;database=pubs "
cnn1.ConnectionTimeout = 30
cnn1.Open
' 使用 DSN 和 ODBC 标记打开连接。
Set cnn2 = New ADODB.Connection
cnn2.ConnectionString = "DSN=Pubs;UID=sa;PWD=pwd; "
cnn2.Open
' 使用 DSN 和 OLE DB 标记打开连接。
Set cnn3 = New ADODB.Connection
cnn3.ConnectionString = "Data Source=Pubs;User ID=sa;Password=pwd; "
cnn3.Open
' 使用 DSN 和单个参数而非连接字符串打开连接。
Set cnn4 = New ADODB.Connection
cnn4.Open "Pubs ", "sa ", "pwd "
' 显示连接的状态。
MsgBox "cnn1 state: " & GetState(cnn1.State) & vbCr & _
"cnn2 state: " & GetState(cnn2.State) & vbCr & _
"cnn3 state: " & GetState(cnn3.State) & vbCr & _
"cnn4 state: " & GetState(cnn4.State)
cnn4.Close
cnn3.Close
cnn2.Close
cnn1.Close
End Sub
Public Function GetState(intState As Integer) As String
Select Case intState
Case adStateClosed
GetState = "adStateClosed "
Case adStateOpen
GetState = "adStateOpen "
End Select
End Function