當(dāng)前位置:首頁文章首頁 IT學(xué)院 IT技術(shù)

在ASP中出現(xiàn)RecordCount=-1的解決方法

作者:  來源:  發(fā)布時(shí)間:2011-6-4 9:41:18  點(diǎn)擊:

本文大家一起分享學(xué)習(xí)的是關(guān)于在ASP中出現(xiàn)RecordCount=-1的解決方案,希望對大家有所幫助。

      現(xiàn)象

  當(dāng)在服務(wù)器端請求RecordCoun時(shí)會(huì)返回-1。這是因?yàn)锳ctiveX Data Objects (ADO) 2.0中的CursorType是adOpenForwardonly或者adOpenDynamic。

  如果是ADO 1.5,只發(fā)生在cursortype是adOpenForwardonly的時(shí)候。如果使用OLEDB provider for JET和SQL Server產(chǎn)生的結(jié)果可能不同,這依賴于數(shù)據(jù)庫的提供者。 

  提供者可能不支持某些CursorTypes。當(dāng)你選擇的CursorType不被支持時(shí),提供者將選擇最接近于你所請求的CursorType。請參考你的提供者的文檔。此外,請注意不是所有的LockType和CursorType的組合都可以同時(shí)工作。改變LockType將強(qiáng)制改變CursorType。請確定使用調(diào)試來檢查CursorType的值。 

  原因 
     
  在動(dòng)態(tài)的游標(biāo)中紀(jì)錄號可能改變。Forwardonly的游標(biāo)無法返回RecordCount。

  解決辦法 

  使用adOpenKeyset(=1)或者adOpenStatic(=3)作為服務(wù)器端游標(biāo)或者客戶端游標(biāo)。客戶端只使用adOpenStatic作為CursorTypes,而不管你選擇什么樣的CursorType。 
     
  狀態(tài)
     
  這個(gè)形式是設(shè)計(jì)決定的。

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

  鏈接文檔幫助理解解決

  有關(guān)rs.open sql,1,1中“1”和另外一個(gè)“1”的解釋

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


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

  其中CursorType代表從一個(gè)表或者一個(gè)SQL查詢結(jié)果返回的記錄。

  這個(gè)參數(shù)有四個(gè)值分別是:

  adOpenForwardOnly(=0)

  表示只允許在記錄集內(nèi)的記錄間往前移動(dòng)。這個(gè)是缺省值。(只讀,且當(dāng)前數(shù)據(jù)記錄只能向下移動(dòng))

  adOpenKeyset(=1)

  反映由其它用戶所做的對記錄的改變或者刪除動(dòng)作,但并不反映由其它用戶做作的添加新記錄的動(dòng)作。(只讀,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng))

  adOpenDynamic(=2) 

  反映由其它用戶所做的對記錄的改變或者刪除動(dòng)作,包括添加的新記錄。(可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng))

  adOpenStatic(=3)

  不反映其它用戶對記錄所做的修改,添加,刪除動(dòng)作。(可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng),可看到新增記錄)

  lockType 表示當(dāng)打開記錄集時(shí),數(shù)據(jù)提供者用于鎖定數(shù)據(jù)庫的類型:

  adLockReadOnly(=1)

  數(shù)據(jù)不能改變,缺省鎖定類型,記錄集是只讀的,不能修改記錄

  adLockPessimistic(=2)

  悲觀鎖定,當(dāng)修改記錄時(shí),數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。(數(shù)據(jù)提供者在開始編輯數(shù)據(jù)的時(shí)候鎖定記錄)

  adLockOptimistic(=3)

  樂觀鎖定 ,直到用Update方法提交更新記錄時(shí)才鎖定記錄。(僅當(dāng)調(diào)用update方法時(shí),數(shù)據(jù)提供者鎖定記錄)

  adLockBatchOptimistic(=4)

  批量樂觀鎖定,允許修改多個(gè)記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。(用于批處理修改)

相關(guān)軟件

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z