关于asp分页的新想法
作者:rainoxu 来源:小鹤与独角兽 时间:2008-09-06 12:53:00
最近在做学院的选课系统时,在分页上被卡壳了一下,因为需要用到排序,所以不能像以前一样用一个自动递增的字段作为主键,然后仅仅是对这个主键来做统计和操作,我原来写的分页——也就是现在我博客上用到的分页程序,思路是这样的:
通过日志ID(这个是自动递增字段,故是唯一的)先统计出日志数
获取指定页数,然后和每页记录数相乘得到需要从第几条记录之后开始读取
读取这个上面这个ID记录集的top 1记录,然后保存到变量startPosition中
从startPosition开始读取指定数量的记录完成分页
但是这里一直用到的是日志的ID,现在想了一下,学院的系统,可以这样来分页:
先依旧是统计ID(自己可以建一个,自动递增),统计出全部记录总数,同时把所有的ID记录返回(这一步相对比较耗资源),注意,只是返回一个字段的所有记录,不是整个表的所有记录
dim rs,sql
set rs=createobject("adodb.recordset")
sql="select id from [table] where 你的查询限制条件"
rs.open sql,conn,1,1获取指定页数减一,乘以每页显示的记录数
dim cPage,pageSize,position
pageSize=15
cPage=cint(request.querystring("cpage"))
if cPage="" then cPage=1 end if
if cPage=1 then
postion=1
else
position=cPage*pageSize
end if然后用rs.moveto这个函数来定位rs游标到刚才得到的ID记录集的某个位置,然后顺序读取N条ID记录,放在一个数组中
dim i,idTemp
idTemp=""
rs.moveto(position)
for i=1 to pageSize
'构建一个以逗号为分隔的字符串
idTemp=idTemp&rs("id")&","
rs.movenext
next
'去掉最右边的一个无用的逗号
idTemp=left(len(idTemp)-1)
rs.close然后读取存在数组中ID相符的全部记录
sql="select * from [table] where id in ("&idTemp&")"
rs.open sql,conn,0,1
标签:分页,排序,效率
0
投稿
猜你喜欢
Oracle跨数据库查询并插入实现原理及代码
2024-01-14 18:52:58
python实现二维插值的三维显示
2022-05-28 14:17:58
利用Python Matlab绘制曲线图的简单实例
2021-05-16 07:21:38
python的字典和集合你了解吗
2022-12-13 11:28:44
马化腾关于产品设计与用户体验的培训
2009-02-12 11:45:00
一条select语句引起的瓶颈问题思考
2024-01-18 02:40:32
Python 文本文件与csv文件的读取与写入
2021-02-10 09:57:56
Python面向对象类的继承实例详解
2023-04-19 11:06:38
Django中更新多个对象数据与删除对象的方法
2021-08-13 13:31:46
vue实现登录后页面跳转到之前页面
2024-04-27 16:00:53
python 将列表中的字符串连接成一个长路径的方法
2023-04-18 14:06:25
javascript实现获取浏览器版本、操作系统类型
2024-05-13 10:36:21
Python利用tkinter实现一个简易番茄钟的示例代码
2021-03-02 17:20:59
JS实现数字格式千分位相互转换方法
2023-08-31 08:24:48
mysql重装后出现乱码设置为utf8可解决
2024-01-27 04:39:35
PDO::prepare讲解
2023-06-06 06:15:28
简单谈谈MySQL数据透视表
2024-01-25 05:42:07
微信小程序 image组件binderror使用例子与js中的onerror区别
2024-04-19 09:42:56
微信小程序实现富文本图片宽度自适应的方法
2023-10-17 12:44:25
python speech模块的使用方法
2023-07-28 09:14:06