文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页技术开发ASP 学院 → 怎样解决ASP Recordset分页出现负数问题

怎样解决ASP Recordset分页出现负数问题

时间:2010/2/21 17:47:00来源:本站整理作者:我要评论(0)

怎样解决ASP Recordset分页出现负数问题:

对于Recordset分页时出现负数的现象,相信会有很多人遇到过这个问题,有时百度、GOOGLE也不得其解,现在由我来总结一下。
出现负数,主要和游标类型有关系。(为举例方便,假设已经有一个conn.asp链接数据库的文件并且已经include)现在举一个例子,代码如下:
'=======================================================
sql="Select * from 表名 where 条件 order by ID desc" '这里的order by 条件可根据自己需要改写
Set rs=conn.execute(sql) '===注意一下这一句===
rs.pagesize=10 '===设置每页的记录数为10===
page=request.querystring("page")
If page="" Then page=1
If Not IsNumeric(page) Then page=1
page=clng(page)
If page<1 Then page=1
If page>rs.pagecount Then page=Vrs.pagecount
rs.absolutepage=page
dim c
c=1
Do while Not rs.eof And c<=rs.pagecount
'输出内容
c=c+1
rs.movenext
Loop
'做页面的链接
'=======================================================
根据上面的代码,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语句进行分页,错误会比较少,最重要得是效率比较高。

 

相关视频

    没有数据

相关阅读 asp下面javascript上传图片限制格式大小方法ie6下面asp.net mvc3 部署应用程序ASP网站安装不成功的解决办法asp的日期转换星座函数快速掌握ASP连接11种数据库的常用语法ASP将access数据导出为excel电子表的方法技巧:用ASP在线创建Word与Excel文档ASP木马密码加密的破解方法

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 127.0.0.1 需要输入用Microsoft JET Databa ASP木马密码加密的破解方法Asp中文件上传,fso方法大全js报错 抛出例外解决方法-适用于ecshop 调用127.0.0.1 需要输入用户名密码的解决方法

人气排行 教你如何用ASP生成HTML静态网页127.0.0.1 需要输入用户名密码的解决方法编写简单ASP代码测试WEB服务器环境asp用户登录模块实例代码ASP保存远程文件到本地(实用版)js报错 抛出例外解决方法-适用于ecshop 调用如何调试ASP的环境ASP.NET中MVC框架模式方法如何实现分享