程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 為什麼在存儲過程中用OLEDB方式不能返回記錄集

為什麼在存儲過程中用OLEDB方式不能返回記錄集

編輯:關於ASP編程
為什麼在存儲過程中用OLEDB方式不能返回記錄集?
我曾寫過一段程序,是對臨時表操作的(主要功能是取出每種分類的TOP10條記錄)。
該存儲過程使用ODBC連接數據庫時正常,能夠得到正確的結果。但在使用oledb方式連接時,卻不能返回記錄集,而一旦操作返回記錄集時就出現錯誤提示:
ADODB.Recordset 錯誤 '800a0e78'
The operation requested by the application is not allowed if the object is closed.
令我百思不得其解。這是為什麼?

這是因為OLEDB與ODBC存在著一個差別,就是,當ASP向ODBC取記錄集時,ODBC過濾了由create table
或insert into產生一些只占位置但不能進行任何操作的記錄集,而當ASP向OLEDB取記錄集時,OLEDB並
沒有將這些記錄集過濾掉。所以,我們應在存儲過程中不希望返回記錄集前就執行set nocount on,
禁止存儲過程返回記錄集;而要返回記錄集時,就要先執行set nocount off。這樣,問題就會解決了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved