相關資訊
本類常用軟件
-
福建農(nóng)村信用社手機銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機銀行客戶端下載下載量:365699
-
快播手機版下載量:325855
本文大家一起分享學習的是關于在ASP中出現(xiàn)RecordCount=-1的解決方案,希望對大家有所幫助。
現(xiàn)象
當在服務器端請求RecordCoun時會返回-1。這是因為ActiveX Data Objects (ADO) 2.0中的CursorType是adOpenForwardonly或者adOpenDynamic。
如果是ADO 1.5,只發(fā)生在cursortype是adOpenForwardonly的時候。如果使用OLEDB provider for JET和SQL Server產(chǎn)生的結(jié)果可能不同,這依賴于數(shù)據(jù)庫的提供者。
提供者可能不支持某些CursorTypes。當你選擇的CursorType不被支持時,提供者將選擇最接近于你所請求的CursorType。請參考你的提供者的文檔。此外,請注意不是所有的LockType和CursorType的組合都可以同時工作。改變LockType將強制改變CursorType。請確定使用調(diào)試來檢查CursorType的值。
原因
在動態(tài)的游標中紀錄號可能改變。Forwardonly的游標無法返回RecordCount。
解決辦法
使用adOpenKeyset(=1)或者adOpenStatic(=3)作為服務器端游標或者客戶端游標?蛻舳酥皇褂胊dOpenStatic作為CursorTypes,而不管你選擇什么樣的CursorType。
狀態(tài)
這個形式是設計決定的。
===============================================================================
鏈接文檔幫助理解解決
有關rs.open sql,1,1中“1”和另外一個“1”的解釋
rs.open sql,1,1也可以寫成
rs.CursorType = 1
rs.LockType = 1
rs.open sql
其中CursorType代表從一個表或者一個SQL查詢結(jié)果返回的記錄。
這個參數(shù)有四個值分別是:
adOpenForwardOnly(=0)
表示只允許在記錄集內(nèi)的記錄間往前移動。這個是缺省值。(只讀,且當前數(shù)據(jù)記錄只能向下移動)
adOpenKeyset(=1)
反映由其它用戶所做的對記錄的改變或者刪除動作,但并不反映由其它用戶做作的添加新記錄的動作。(只讀,當前數(shù)據(jù)記錄可自由移動)
adOpenDynamic(=2)
反映由其它用戶所做的對記錄的改變或者刪除動作,包括添加的新記錄。(可讀寫,當前數(shù)據(jù)記錄可自由移動)
adOpenStatic(=3)
不反映其它用戶對記錄所做的修改,添加,刪除動作。(可讀寫,當前數(shù)據(jù)記錄可自由移動,可看到新增記錄)
lockType 表示當打開記錄集時,數(shù)據(jù)提供者用于鎖定數(shù)據(jù)庫的類型:
adLockReadOnly(=1)
數(shù)據(jù)不能改變,缺省鎖定類型,記錄集是只讀的,不能修改記錄
adLockPessimistic(=2)
悲觀鎖定,當修改記錄時,數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。(數(shù)據(jù)提供者在開始編輯數(shù)據(jù)的時候鎖定記錄)
adLockOptimistic(=3)
樂觀鎖定 ,直到用Update方法提交更新記錄時才鎖定記錄。(僅當調(diào)用update方法時,數(shù)據(jù)提供者鎖定記錄)
adLockBatchOptimistic(=4)
批量樂觀鎖定,允許修改多個記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。(用于批處理修改)