get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是关于recordcount等-1的问题,一起来学习了解下吧!
【 tulaoshi.com - Web开发 】
  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("属性名")进行测试是否支持该属性。 
  http://www.dwww.cn/new/20051128112149636.html
  
  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
  可是的确有记录集返回
  还可以显示
来源:http://www.tulaoshi.com/n/20160219/1620109.html
看过《关于recordcount等-1的问题》的人还看了以下文章 更多>>