為什么在存儲(chǔ)過(guò)程中用OLEDB方式不能返回記錄集
更新時(shí)間:2006年06月23日 00:00:00 作者:
為什么在存儲(chǔ)過(guò)程中用OLEDB方式不能返回記錄集?
我曾寫過(guò)一段程序,是對(duì)臨時(shí)表操作的(主要功能是取出每種分類的TOP10條記錄)。
該存儲(chǔ)過(guò)程使用ODBC連接數(shù)據(jù)庫(kù)時(shí)正常,能夠得到正確的結(jié)果。但在使用oledb方式連接時(shí),卻不能返回記錄集,而一旦操作返回記錄集時(shí)就出現(xiàn)錯(cuò)誤提示:
ADODB.Recordset 錯(cuò)誤 '800a0e78'
The operation requested by the application is not allowed if the object is closed.
令我百思不得其解。這是為什么?
這是因?yàn)镺LEDB與ODBC存在著一個(gè)差別,就是,當(dāng)ASP向ODBC取記錄集時(shí),ODBC過(guò)濾了由create table
或insert into產(chǎn)生一些只占位置但不能進(jìn)行任何操作的記錄集,而當(dāng)ASP向OLEDB取記錄集時(shí),OLEDB并
沒(méi)有將這些記錄集過(guò)濾掉。所以,我們應(yīng)在存儲(chǔ)過(guò)程中不希望返回記錄集前就執(zhí)行set nocount on,
禁止存儲(chǔ)過(guò)程返回記錄集;而要返回記錄集時(shí),就要先執(zhí)行set nocount off。這樣,問(wèn)題就會(huì)解決了。
我曾寫過(guò)一段程序,是對(duì)臨時(shí)表操作的(主要功能是取出每種分類的TOP10條記錄)。
該存儲(chǔ)過(guò)程使用ODBC連接數(shù)據(jù)庫(kù)時(shí)正常,能夠得到正確的結(jié)果。但在使用oledb方式連接時(shí),卻不能返回記錄集,而一旦操作返回記錄集時(shí)就出現(xiàn)錯(cuò)誤提示:
ADODB.Recordset 錯(cuò)誤 '800a0e78'
The operation requested by the application is not allowed if the object is closed.
令我百思不得其解。這是為什么?
這是因?yàn)镺LEDB與ODBC存在著一個(gè)差別,就是,當(dāng)ASP向ODBC取記錄集時(shí),ODBC過(guò)濾了由create table
或insert into產(chǎn)生一些只占位置但不能進(jìn)行任何操作的記錄集,而當(dāng)ASP向OLEDB取記錄集時(shí),OLEDB并
沒(méi)有將這些記錄集過(guò)濾掉。所以,我們應(yīng)在存儲(chǔ)過(guò)程中不希望返回記錄集前就執(zhí)行set nocount on,
禁止存儲(chǔ)過(guò)程返回記錄集;而要返回記錄集時(shí),就要先執(zhí)行set nocount off。這樣,問(wèn)題就會(huì)解決了。
相關(guān)文章
ASP初學(xué)者常犯的幾個(gè)錯(cuò)誤(ZT)
ASP初學(xué)者常犯的幾個(gè)錯(cuò)誤(ZT)...2007-01-01javascript asp教程第十三課--include文件
javascript asp教程第十三課--include文件...2007-03-03ASP字符串大寫轉(zhuǎn)換成小寫 ASP小寫轉(zhuǎn)換成大寫 ucase lcase
字符串大寫字面轉(zhuǎn)換成小寫字面或者小寫字面轉(zhuǎn)換成大寫字面,ASP(特指VBS)里自帶了兩個(gè)函數(shù)2009-06-06ASP Recordset 分頁(yè)顯示數(shù)據(jù)的方法(修正版)
最近給別人培訓(xùn)asp 分頁(yè),對(duì)于asp的入門新手來(lái)說(shuō),最簡(jiǎn)單的分頁(yè)就是用Recordset 分頁(yè)技術(shù)了,他主要用于一些少量數(shù)據(jù)的分頁(yè),對(duì)于新手學(xué)習(xí)是最好的了,對(duì)于大量數(shù)據(jù)分頁(yè)不建議用。2008-11-11