我的存儲過程從Management Studio執行100%正常,但是當通過帶有try catch塊的PDO運行時,我收到以下異常消息: SQLSTATE [ IMSSP]:查詢的活動結果不包含任何字段。php pdo fetchAll在執行存儲過程時返回SQL錯誤'no active fields'
我已經試過了經典的SET NOCOUNT ON(這讓我知道以前)阻止它返回行數,並且我通過刪除SP的各個部分來完成各種測試,直到找到錯誤所在的部分。我也嘗試過PHP PDO nextRowset(),但沒有運氣。我聲明瞭一個遊標(shock,恐怖我知道!)並迭代了一些結果,這本身並沒有引起任何問題 - 但實際上這個遊標必須爲遊標中的每次獲取運行各種存儲過程本身,當我介紹這些問題出現時的存儲過程。
我已經通過光標內的SP和SET NOCOUNT ON在他們的情況下可能是問題,但沒有運氣。這些SP中的一個或兩個具有輸出,但是這些被相應地記錄在變量中。
有沒有人有任何想法?我不希望我後執行該項目的任何代碼,但命令的一些場景光標塊:
SELECT @varName = columnName FROM dbo.tableName
SET @varName = (SELECT columnName FROM dbo.tableName)
EXEC dbo.storedProcedure @outputVar OUTPUT
我最好的猜測是頂級的例子是問題,但我不懂行的就知道了。我希望找到錯誤,而不是一個接一個地刪除這些錯誤,因爲整個過程所執行的操作難以回滾到我的測試數據庫,並且每一行對於獲取正確的輸出都很重要。
在此先感謝您提供的任何幫助!