1/
mssql--asp的rs.recordcount值為負1
只有以ADO方式調(diào)用數(shù)據(jù)庫才有recordcount這一說,用存儲過程需要用select count(*) from table_name自行統(tǒng)計
? 這個說的不對, 存儲過程也可以用 ado 來打開,比如:rs.open "exec Some
2/
通常人們使用以下兩種方法來執(zhí)行SQL語句:
Set Rs=Conn.Execute(SqlStr)
和
Set Rs=Server.CreateObject(“ADODB.RecordSet“)
Rs.Open SqlStr,Conn,CursorType,LockType
(RecordSet對象方法請看這里)
由于默認的記錄集游標(biāo)是服務(wù)器游標(biāo),
Rs.CursorLocation = adUseServer
所以返回Rs.RecordCount=-1,
應(yīng)該把服務(wù)器游標(biāo)改為客戶端游標(biāo),
Rs.CursorLocation = adUseClient
Rs.Open SqlStr,Conn,CursorType,LockType
rs.cursortype
光標(biāo)類型 recordcount 屬性
---------------------------------------------
ForwardOnly 0(默認) 返回-1
Keyset 1 正確的記錄數(shù)
Dynamic 2 -1或不正確的記錄數(shù),依數(shù)據(jù)源而定
Static 3 正確的記錄數(shù)
所以Rs.CursorLocation = 3
可用recordset.support("屬性名")進行測試是否支持該屬性。
http://www.dwww.cn/new/20051128112149636.html
3/
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sSql, oConn, 1, 1
來讀數(shù)據(jù),
要不就用Select Count(*) As RecordCount From [table]
oRs("RecordCount")來獲取
要不就用Do While Not oRs.Eof
RecordCount = RecordCount + 1
Loop
4/我的數(shù)據(jù)庫是這么連接的:
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
可是的確有記錄集返回
還可以顯示
新聞熱點
疑難解答