我有一個存儲過程的一個非常基本的執行在我的代碼:ADODB記錄的RecordCount不返回有用的信息
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記錄爲1。我有另一段代碼,可以返回一個或多個行,並與我的測試參數,它返回七行,RecordCount
正確顯示7.有誰知道爲什麼我得到不一致的結果?如果我在這裏得到零結果,我需要能夠跳過後面的一段代碼,除了試圖訪問一個壞的RecordSet對象並且有一個特殊的處理程序到resume next
,如果它是一個特定的錯誤代碼,沒有其他好方法來檢查。
嗯,我會。我爲兩者使用了相同的連接字符串,但在嘗試解決另一個問題時,我在第二種情況下添加了「objConn.CursorLocation = adUseClient」這一行。將在幾分鐘內接受。謝謝! – 2014-10-06 16:03:03