关于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
投稿
猜你喜欢
视觉对交互的帮助——提升可用性
2008-10-16 13:16:00
[翻译]标记语言和样式手册 Chapter 15 为body指定样式
2008-02-21 12:36:00
ASP使用wsImage组件给图片加水印代码
2010-06-09 19:23:00
解析xml字符串的函数
2008-06-10 12:37:00
解决MySQL 5.0不能使用自动增加字段问题
2008-12-02 14:30:00
SQL中exists的使用方法
2011-12-01 08:36:07
ASP技巧:禁用清除页面缓存的五种方法
2009-07-21 12:33:00
如何防范利用刷新来“作弊”的计数器?
2009-11-22 17:18:00
变态输入框——再谈校验包容性(一)
2009-10-10 13:23:00
ASP伪静态页简单教程
2007-09-28 14:35:00
asp中用insert into语句向数据库插入记录(添加信息)的方法
2011-02-05 10:46:00
10个超实用jQuery插件资源
2009-07-17 18:54:00
js查找/搜索页面中的字符源代码
2008-02-17 17:13:00
web版Photoshop来了
2008-04-21 13:39:00
关于淘宝商城新版的一点看法
2009-06-28 16:00:00
Oracle8i和Microsoft SQL Server比较
2010-07-26 13:05:00
ASP 改良版MD5、SHA256多重加密类(二次及多次)
2012-11-30 20:26:47
asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作
2011-03-11 10:57:00
SQL Server 2000中生成XML的小技巧
2009-02-13 17:12:00
ASP正则获取图片地址
2009-09-03 13:18:00