首 页 ASP ASP.NET PHP JSP Ajax DIV+CSS JavaScript XML C#
MySQL MSSQL Access Oracle Linux Server 电脑技巧 网络安全 建站经验 其它

关于ASP Recordset 分页出现负数解决方法及建议

整理日期:2009年04月18日 【字体:


伊图教程网[www.etoow.com]
http://www.etoow.com/html/2009-04/1240023831.html

  根据上面的代码,RecordSet对象直接由代码:Set rs=conn.execute(sql),使用该句后,RecordSet对象默认的游标为0,即游标只能向前滚动,锁定类型为0,表示只读锁定,不能更新RecordSet对象。

  所以,对于分页时如果出现负数,则检查RecordSet对象是否写为以上形式,要写成:

  Set rs=Server.CreateObject("adodb.recordset")
  rs.open sql,conn,1,3

  以上表示游标为1,可向前向后移动;锁定类型为3,可批量更新多条记录。

  根据上述方法做基本上不再会有问题,但为保险,根据RecordSet分页的原理是根据读取所有记录后获取记录数,所以先让游标滚动一圈,在级rs.pagesize=10 后面加上以下两句:

  rs.movelast  '游标移至最后
  rs.movefirst '游标移到最前

  已知RecordSet的分页原理为先把整个数据库里面的记录读出后才能获取rs.Recordcount(记录总数)的值。这种分页方法比较简单,但是有一个致命的坏处,当数据库里记录数有很多条时,根据其分页原理,这样就会占用很高的系统资源,非常浪费,建议在实际编程中不使用该方法。现在给大家一个思路,可以在SQL查询语句里做分页处理,每次读取固定的记录数,具体如下:

  从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:

  SELECT *
  FROM ( SELECT Top N *
  FROM (SELECT Top (M + N - 1) * FROM 表名 Order by ID desc) t1 ) t2
  Order by ID desc

  用以上SQL语句进行分页,错误会比较少,最重要得是效率比较高。
Tags:ASP   Recordset    分页   负数   解决方法
关于ASP Recordset 分页出现负数解决方法及建议
'http://www.etoow.com/html/2009-04/1240023831.html
1
 
信息搜索
  
联系我们关于本站广告服务设为首页 收藏本站友情链接网站地图
Copyright © Etoow.com Inc. All Rights Reserved