【发布时间】:2014-10-07 00:16:24
【问题描述】:
我的代码中有一个非常基本的存储过程执行:
Dim objCmd As ADODB.Command
Dim objConn As ADODB.Connection
Dim rsTemplate As ADODB.Recordset
Set objConn = New ADODB.Connection
objConn.Open strConnection
Set objCmd = New ADODB.Command
objCmd.ActiveConnection = objConn
objCmd.CommandType = adCmdStoredProc
objCmd.CommandText = "GetTemplate"
objCmd.Parameters.Append objCmd.CreateParameter("@Param1", adInteger, adParamInput, , lngParam1)
objCmd.Parameters.Append objCmd.CreateParameter("@Param2", adInteger, adParamInput, , lngParam1)
objCmd.CommandTimeout = 600
Set rsTemplate = objCmd.Execute()
LogInfo "Found " & rsTemplate.RecordCount & " templates"
SP 应该找到单行。问题是有时它不会罚款,这实际上没问题,除了RecordCount 属性在两种情况下都是-1。我本来期望 0 记录零记录和 1 记录。我有另一段代码可以返回单行或多行,使用我的测试参数,它返回七行,RecordCount 正确显示 7。有谁知道为什么我得到不一致的结果?如果我在这里得到零结果,我需要能够跳过后续的一段代码,并且没有其他好的检查方法,除了尝试访问错误的 RecordSet 对象并对resume next 使用特殊处理程序(如果它是特定的)错误代码。
【问题讨论】: