當用 ASP 寫連結資料庫的程式時,如果有用到 CURSOR, 會出現錯誤:(描述如下)
當執行 SQL Command 1 時,會出現 「當物件關閉時,不允許操作」的問題,
但是 執行 SQL Command 2 就不會。
是不是 執行 rs1.open 的時候,有參數要設定?
================================== SQL Command 1 ==================
declare @ShipperID int;
select * into #tmp from Shippers
DECLARE rsCursor CURSOR FOR
SELECT ShipperID FROM #tmp;
--開啟指標
OPEN rsCursor;
-- --移動指標到第一筆, 並將資料欄位填入變數中
FETCH NEXT FROM rsCursor INTO @ShipperID;
WHILE @@FETCH_STATUS=0
BEGIN
--更新資料表
Update #tmp set Phone='555' where ShipperID=@ShipperID
--移動指標到下一筆, 並將資料欄位填入變數中
FETCH NEXT FROM rsCursor INTO @ShipperID;
END
--關閉指標
CLOSE rsCursor;
--釋放指標
DEALLOCATE rsCursor;
select * from #tmp
drop table #tmp
======================================================================================
================================== SQL Command 2 ==================
select * from Shippers
====================================================================
rs1.open strSQL, conn, 3, 1
錯誤類型:
ADODB.Recordset (0x800A0E78)
當物件關閉時,不允許操作。
/SSOTest/test.asp, line 58
解決方法,是在SQL 語法裡面加上
SET NOCOUNT ON
參考網址:http://csdn.eyeah.cn/3116/1118/1126/232617673.html
據網址所言,是因為 odbc 與 oledb 資料集不同所造成。
沒有留言:
張貼留言