經典 ASP 與預存程序執行:空結果集故障排除
在經典 ASP 應用程式中執行預存程序可能會帶來挑戰。本文解決了一個常見問題:在 VBScript 中執行預存程序時接收空資料集或無回應。
問題:空記錄集與遺失的輸出
原始程式碼嘗試執行預存程序「usp_Targets_DataEntry_Display」並填入記錄集。 開發人員遇到了兩個症狀:空記錄集和 response.write
語句缺少輸出。
解決方案及除錯步驟
解決方案涉及幾個關鍵步驟:
預存程序驗證:開發人員確認了執行使用者的「usp_Targets_DataEntry_Display」的存在性和可存取性。
SET NOCOUNT ON
: 儲存過程中缺少 SET NOCOUNT ON
被認定為潛在的罪魁禍首。 此設定可防止程序傳回受影響行的計數,這可能會過早關閉記錄集。
程式碼分析與修正:發現原始程式碼和修正後的程式碼之間有關鍵差異。 原始碼使用rs = objCommandSec.Execute
,它傳回一個封閉的記錄集。
正確的記錄集處理: 解決方案涉及使用 rs.Open objCommandSec
而不是 rs = objCommandSec.Execute
。 Open
方法正確開啟記錄集,允許存取檢索到的資料。
修訂後的功能代碼
更正後的程式碼利用 Open
方法進行正確的記錄集處理:
<code class="language-vbscript">set rs = Server.CreateObject("ADODB.RecordSet") rs.Open objCommandSec</code>
透過將 SET NOCOUNT ON
合併到預存程序中並使用 rs.Open
方法,開發人員成功從預存程序中檢索到預期資料。 這種方法可確保經典 ASP 應用程式中準確可靠的資料檢索。
以上是為什麼我的經典 ASP 程式碼在執行預存程序時會傳回空資料集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!