ASP技巧:RecordCount=-1解決方案

來源:互聯網
上載者:User
技巧|解決     現象

  當在伺服器端請求RecordCoun時會返回-1。這是因為ActiveX Data Objects (ADO) 2.0中的CursorType是adOpenForwardonly或者adOpenDynamic。

  如果是ADO 1.5,只發生在cursortype是adOpenForwardonly的時候。如果使用OLEDB provider for JET和SQL Server產生的結果可能不同,這依賴於資料庫的提供者。 

  提供者可能不支援某些CursorTypes。 當你選擇的CursorType不被支援時,提供者將選擇最接近於你所請求的CursorType。請參考你的提供者的文檔。此外,請注意 不是所有的LockType和CursorType的組合都可以同時工作。改變LockType將強制改變CursorType。請確定使用調試來檢查CursorType的值。 

  原因 
     
  在動態遊標中紀錄號可能改變。Forwardonly的遊標無法返回RecordCount。

  解決辦法 

  使用adOpenKeyset(=1)或者adOpenStatic(=3)作為伺服器端遊標或者用戶端資料指標。用戶端只使用adOpenStatic作為CursorTypes,而不管你選擇什麼樣的CursorType。 
     
  狀態
     
  這個形式是設計決定的。

===============================================================================

  連結文檔協助理解解決

  有關rs.open sql,1,1中“1”和另外一個“1”的解釋

  rs.open sql,1,1也可以寫成


rs.CursorType  =  1
rs.LockType  =  1
rs.open  sql

  其中CursorType代表從一個表或者一個SQL查詢結果返回的記錄。

  這個參數有四個值分別是:

  adOpenForwardOnly(=0)

  表示只允許在記錄集內的記錄間往前移動。這個是預設值。(唯讀,且當前資料記錄只能向下移動)

  adOpenKeyset(=1)

  反映由其它使用者所做的對記錄的改變或者刪除動作,但並不反映由其它使用者做作的添加新記錄的動作。(唯讀,當前資料記錄可自由移動)

  adOpenDynamic(=2) 

  反映由其它使用者所做的對記錄的改變或者刪除動作,包括添加的新記錄。(可讀寫,當前資料記錄可自由移動)

  adOpenStatic(=3)

  不反映其它使用者對記錄所做的修改,添加,刪除動作。(可讀寫,當前資料記錄可自由移動,可看到新增記錄)

  lockType 表示當開啟記錄集時,資料提供者用於鎖定資料庫的類型:

  adLockReadOnly(=1)

  資料不能改變,預設鎖定類型,記錄集是唯讀,不能修改記錄

  adLockPessimistic(=2)

  悲觀鎖定,當修改記錄時,資料提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。(資料提供者在開始編輯資料的時候鎖定記錄)

  adLockOptimistic(=3)

  樂觀鎖定 ,直到用Update方法提交更新記錄時才鎖定記錄。(僅當調用update方法時,資料提供者鎖定記錄)

  adLockBatchOptimistic(=4)

  批量樂觀鎖定,允許修改多個記錄,只有調用UpdateBatch方法後才鎖定記錄。(用於批處理修改)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.