程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 關於recordcount等-1的問題

關於recordcount等-1的問題

編輯:ASP技巧

1\
mssql--ASP的rs.recordcount值為負1

只有以ADO方式調用數據庫才有recordcount這一說,用存儲過程需要用select count(*) from table_name自行統計
? 這個說的不對, 存儲過程也可以用 ado 來打開,比如:rs.open "exec SomePRoc", conn, 1, 3我處理解決的方法是rs.open sql,conn,1,1解決此問題
 
2\
通常人們使用以下兩種方法來執行SQL語句:
Set Rs=Conn.Execute(SqlStr)

Set Rs=Server.CreateObject(“ADODB.RecordSet“)
Rs.Open SqlStr,Conn,CursorType,LockType

(RecordSet對象方法請看這裡)

由於默認的記錄集游標是服務器游標,
Rs.CursorLocation = adUseServer
所以返回Rs.RecordCount=-1,
應該把服務器游標改為客戶端游標,
Rs.CursorLocation = adUseClIEnt
Rs.Open SqlStr,Conn,CursorType,LockType

rs.cursortype

光標類型 recordcount 屬性
---------------------------------------------
ForwardOnly 0(默認) 返回-1
Keyset 1 正確的記錄數
Dynamic 2 -1或不正確的記錄數,依數據源而定
Static 3 正確的記錄數

所以Rs.CursorLocation = 3
可用recordset.support("屬性名")進行測試是否支持該屬性。

3\
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sSql, oConn, 1, 1
來讀數據,

要不就用Select Count(*) As RecordCount From [table]
oRs("RecordCount")來獲取

要不就用Do While Not oRs.Eof
RecordCount = RecordCount + 1
Loop


4\我的數據庫是這麼連接的:
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn
sql="SELECT * FROM space "
set rs=createobject("adodb.recordset")
rs.open sql,conn,1,1

可是的確有記錄集返回
還可以顯示

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved