关于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
投稿
猜你喜欢
- 许多人利用Session变量来开发ASP(Active Server Pages)。这些变量与任何编程语言中通用的变量非常相似,并且具有和通
- 五、过渡转化的使用在《mind hack》一书中,揭示了人脑鲜为人知的工作原理。其中提到了“突然的移动或闪烁会吸引人的注意力,这正是负责视觉
- jQuery 将马上发布 1.4 正式版,代码也从 googlecode 上迁移到了 github. jQuery 是我接触的第一个 JS
- 自己写的一个自动完成效果,暂时没有ajax数据源,用静态数据代替。仅供喜欢JavaScript的同学们参考,代码如下<!DOCTYPE
- 用语言实现 好处: 1、可以减少对数据库的访问。 2、可移植性好。 坏处: 1、操作起来考虑的东西较多,修改一处就要修改别一处。也就是说是相
- 试了一下,xmlDoc.save()行不同,就试着用fso做了出来。整理一下,供大家discuss。由于用js操作本地xml文件之后save
- 注意,在改变数值之前锁定应用,确保一段时间里只有一个客户执行该语句。<SCRIPT LANGUAGE="VBScr
- 作者: Alan Pearce原文: Multi-Column Layouts Climb Out of the Box地址: http:/
- 在我们关于SQL服务器安全系列的这文章里,我们的目标是向你提供安全安装SQL服务器所需要的工具和信心,这样的话,你有价值的数据就会受到保护,
- 由于网络带宽以及某些WAP服务器DECK传输的限制,所以DECK越小越好,最好不要超过1.2K。如果你的需求很复杂,最好分成几个DECK来完
- 我们生活在信息繁杂的社会,尤其是在互联网时代,人们开始通过网络开始接触越来越多的信息,那么,如何获取/传递有效而准确的信息将非常重要。在网页
- 阅读上一篇教程:WEB2.0网页制作标准教程(7)CSS学习入门 CSS布局与传统表格(table)布局最大的区别在于:原来的定位都是采用表
- 我们到目前为止所谈到的SQL语句相对较为简单,如果再能通过标准的recordset循环查询,那么这些语句也能满足一些更复杂的要求。不过,何必
- 很早前就遇到这个空值的属性,它既出现在 html 文档中,也出现在 xml 中,一直都回避,放之任之,反正也不影响文档的正确性。隐隐约约过了
- 本讲的内容是使用ASP的ActiveX Server Components(组件),说实话下面的内置组件我们用的很少。一、 Browser
- DatePart 的语法是 DatePart(interval, date),用以取 date 的某部分。 interval yyyy:da
- EcmaScript正則表達式( 深入淺出系列之淺出 ^_^ )在线正则表达式测试:http://www.aspxhome.com/RegE
- 很多人对于CSS都是边干边学习,因为它不像C#之类的语言那么复杂,看起来似乎挺简单,然而正是这种对CSS的不完整的理解,导致了许多的CSS代
- 初步确定是病毒破坏了文件的读写权限,现放出修复工具请中招朋友的测试!!使用方法:压缩包中文件全部解压或者直接运行压缩包中的iisfixer.
- CSS 盒模型网页设计中的每个元素都是长方形的盒子。盒子的尺寸是怎样精确计算的,请看下图:如果是 Firebug 用户的话(基本和前端有关的