1\
mssql--asp的rs.recordcount值為負(fù)1
只有以ADO方式調(diào)用數(shù)據(jù)庫(kù)才有recordcount這一說(shuō),用存儲(chǔ)過(guò)程需要用select count(*) from table_name自行統(tǒng)計(jì)
這個(gè)說(shuō)的不對(duì), 存儲(chǔ)過(guò)程也可以用 ado 來(lái)打開,比如:rs.open "exec SomeProc", conn, 1, 3我處理解決的方法是rs.open sql,conn,1,1解決此問(wèn)題
2\
通常人們使用以下兩種方法來(lái)執(zhí)行SQL語(yǔ)句:
Set Rs=Conn.Execute(SqlStr)
和
Set Rs=Server.CreateObject(“ADODB.RecordSet“)
Rs.Open SqlStr,Conn,CursorType,LockType
(RecordSet對(duì)象方法請(qǐng)看這里)
由于默認(rèn)的記錄集游標(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(默認(rèn)) 返回-1
Keyset 1 正確的記錄數(shù)
Dynamic 2 -1或不正確的記錄數(shù),依數(shù)據(jù)源而定
Static 3 正確的記錄數(shù)
所以Rs.CursorLocation = 3
可用recordset.support("屬性名")進(jìn)行測(cè)試是否支持該屬性。
http://www.dwww.cn/new/20051128112149636.html
3\
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sSql, oConn, 1, 1
來(lái)讀數(shù)據(jù),
要不就用Select Count(*) As RecordCount From [table]
oRs("RecordCount")來(lái)獲取
要不就用Do While Not oRs.Eof
RecordCount = RecordCount 1
Loop
4\我的數(shù)據(jù)庫(kù)是這么連接的:
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")
聯(lián)系客服