用recordCount返回记录总数,为什么总是-1条记录,请教高手,急~~ Web 开发...

来源:百度文库 编辑:神马文学网 时间:2024/06/04 16:28:34

用recordCount返回记录总数,为什么总是-1条记录,请教高手,急~~

楼主cq_tan(问题比较多!)2005-04-19 17:53:09 在 Web 开发 / ASP 提问

con.open   "PROVIDER=SQLOLEDB;DATA   SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称    
  set   conn=server.createobject("ADODB.connection")      
   
    Set   oRd   =   Server.CreateObject("ADODB.Recordset")    
    oRd.ActiveConnection   =   con_str  
    oRd.Source   =   sql_str  
    oRd.CursorType   =   3  
    oRd.CursorLocation   =   2  
    oRd.LockType   =   3  
    oRd.Open()  
     
  我用ord.recordCount,为什么都是显示-1条记录   ,请教高手 问题点数:100、回复次数:10Top

1 楼zhutimy(慢刀手)回复于 2005-04-19 17:56:52 得分 10

没设置好CursorLocation吧,很久没用asp了Top

2 楼jzywh(江大鱼)回复于 2005-04-19 17:59:06 得分 10

oRd.open   sql_str,conn,1,3Top

3 楼bluemoon0001(小天--追梦浪子)回复于 2005-04-19 18:03:55 得分 0

看一下,你的数据表有没有主键,如果没有主键就会出现这种情况.Top

4 楼bluemoon0001(小天--追梦浪子)回复于 2005-04-19 18:06:16 得分 0

还有一种情况用:  
   
  set   rs=conn.execute("...")  
  这样得到的记录集的recordcount也是-1,建议你用   jzywh(江小鱼)的方法。Top

5 楼cq_tan(问题比较多!)回复于 2005-04-19 18:08:14 得分 0

我重新写好个清楚点吧:  
   
  '//-------get   con_str   ---------//  
  con_str=open_con_str("localhost","sa","sa","testDB")  
   
  '//-------   con_str   maker   ---------//  
  function   open_con_str(ConServe,ConUser,ConPassWord,ConDatabase)  
    'On   Error   Resume   Next  
  'open_con_str   =   "Driver={SQL   Server};Server="   &   ConServe   &   ";UID="   &   ConUser   &   ";PWD="   &   ConPassWord   &   ";Database="   &   ConDatabase   &   ""         '--//for   odbc  
  open_con_str=   "PROVIDER=SQLOLEDB;DATA   SOURCE="&ConServe&";UID="&ConUser&";PWD="&ConPassWord&";DATABASE="&ConDatabase&""                 '//---for   ole_db  
  end   function  
   
  '//-------open   connection   ---------//  
  function   oConn()  
    On   Error   Resume   Next  
    set   oConn=server.CreateObject("ADODB.connection")  
    oConn.ConnectionString=con_str  
    oConn.CursorLocation=3  
    oConn.Open  
     
  end   function  
   
    '//-------open   RecordSet   LockType   3---------//(可返回多条记录集,用于判断记录集的大小)  
  Function   oRd3(sql_str)  
    On   Error   Resume   Next  
    Set   oRd3   =   Server.CreateObject("ADODB.Recordset")    
    oRd3.ActiveConnection   =   con_str  
    oRd3.Source   =   sql_str  
    oRd3.CursorType   =   3                     '   //与oRd不同之处,可返回多条记录集  
    oRd3.CursorLocation   =   3  
    oRd3.LockType   =   3  
    oRd3.Open()  
    oRd3_numRows   =   0  
  End   Function  
   
  set   testSQL=oRd3("select   *   from   test")  
  response.write   testSQL.recordCount  
  发现显示表记录总数的时候,有的表为-1,有的是正确的,请教各位高手  
   
  Top

6 楼yuwenwu_xhs(主席夸我帅)回复于 2005-04-19 18:08:48 得分 0

同意   bluemoon0001(小天--追梦浪子)     做法Top

7 楼shli(Freeing)回复于 2005-04-19 18:50:52 得分 10

好象是有几种方法返回的值是-1  
  oRd.open   sql_str,conn,1,1  
  返回的值也是-1  
  一定要是3  
  不知道为什么!  
  oRd.open   sql_str,conn,1,3  
  Top

8 楼chzxq(毛毛鼠)回复于 2005-04-19 19:10:13 得分 70

 
  oRd.CursorLocation   =   3  
  oRd.open   sql_str,conn,1,3  
  Top

9 楼chzxq(毛毛鼠)回复于 2005-04-19 19:11:04 得分 0

oRd.CursorLocation   =   3  
  是这个  
  oRd.open   sql_str,conn,3,2Top

10 楼cq_tan(问题比较多!)回复于 2005-04-21 09:49:25 得分 0

恩,是oRd.CursorLocation   =   3  
  的属性设置,搞定了,多谢Top

相关问题

  • rs 记录集无法返回 rs.recordcount 记录总数
  • 返回记录总数! 在SQL SERVER 中过程怎样写?
  • 为何查询返回的记录总数总是-1
  • 在C#中,OleDbDataReader 能否返回挑选记录的总数?
  • *****一个关于返回记录集中记录总数的小问题*************快来拿分!!!!!!!!!!! [:(
  • 存储过程返回记录集RecordCount=-1的问题
  • 关于RECORDCOUNT不能正确返回记录数的问题
  • 邹建的分页存储过和能不能返回记录的总数啊?
  • 求一句SQL语言,返回符合条件的记录的总数目
  • MYSQL:求记录总数