关于ASP Recordset 分页出现负数解决方法及建议
来源:互联网 发布:js 定时器 刷新 编辑:程序博客网 时间:2024/05/22 15:19
对于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 Recordset 分页出现负数解决方法及建议
- 关于ASP Recordset 分页出现负数解决方法及建议
- php ip2long 出现负数原因及解决方法
- php ip2long 出现负数原因及解决方法
- ASP分页显示Recordset数据
- ASP分页显示Recordset数据
- ASP分页显示Recordset数据
- 关于ASP连接Mysql出现乱码的解决方法
- 关于asp.net网址出现乱码问题的解决方法
- asp.net调试器出现的问题及相关解决方法
- asp.net 发布WebService出现的各种问题及解决方法
- 关于asp.net分页
- asp recordset 教程
- ASP之Recordset 持久性
- asp中Recordset使用说明
- asp Recordset 对象
- 关于使用iMAG.js出现的问题及解决方法
- ASP漏洞及安全建议
- Oracle 性能监控
- 浅析 回调函数
- TCP连接探测中的Keepalive 和心跳包
- 移动嵌入式遭遇能耗瓶颈,WinCE电源管理应对有技巧
- CentOS firefox安装Adobe Flash Player的方法
- 关于ASP Recordset 分页出现负数解决方法及建议
- 有.h和.lib 如何生成DLL
- break和continue
- const成员函数简介
- Parent属性也可释放子对象
- 文件操作 API 函数介绍
- 基于WinCE的一个简单的流程序驱动模板
- JavaScript 实现画图板效果
- Ext iframe怎么在父窗口调用子窗口的事件???