【发布时间】:2018-10-19 00:30:44
【问题描述】:
我一直在寻找一种方法来了解 ADO 记录集是否打开。我找到了this,在那里我遇到了语法:
If Not (rs Is Nothing) Then
If (rs.State And 1) = 1 Then rs.Close
Set rs = Nothing
End If
我阅读了@Raybarg 发布的解释,但是我有以下问题: 语法:
If Not (rs Is Nothing) Then
If rs.State > 0 Then rs.Close
Set rs = Nothing
End If
不等价?可能存在 Recordset 存在但.State 属性返回的不是ObjectStateEnum 值的情况?
谢谢!
【问题讨论】:
-
你在什么环境下使用这个?根据 Recordset 的状态,如果
ObjectStateEnum>adStateOpen尝试关闭它可能会引发错误。 -
可能存在 Recordset 存在但 .State 属性返回的不是 ObjectStateEnum 值的情况?这真的是你的问题吗?
-
我通常使用条件
If rs.State > 0 Then rs.Close,我想知道这是否可以返回超出预期的其他结果。为此,我尝试理解问题......如果两个代码是等价的,情况就解决了。