什么是 ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电
子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,
一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页
显示一定数目的帖子数,譬如 20 条。想不想了解如何实现分页显示?请看
本文!
那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,
但主要有两种:
一、将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,
存放在内存中,然后通过 ADO Recordset 对象所提供的几个专门支持分页处
理的属性: PageSize( 页大小 )、 PageCount( 页数目 ) 以及
AbsolutePage( 绝对页 ) 来管理分页处理。
二、根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记
录数读取出来并显示。
两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示
来依次做判断分析从而达到分页显示的效果,而后者是先根据指示做出判断并
将规定数目的符合查询条件的记录读入内存,从而直接达到分页显示的功能。
我们可以很明显的感觉到,当数据库中的记录数达到上万或更多时,第一
种方法的执行效率将明显低于第二种方法,因为当每一个客户查询页面时都要
将所有符合条件的记录存放在服务器内存中,然后在进行分页等处理,如果
同时有超过 100 个的客户在线查询,那么 ASP 应用程序的执行效率将大受
影响。但是,当服务器上数据库的记录数以及同时在线的人数并不是很多时,
两者在执行效率上是相差无几的,此时一般就采用第一种方法,因为第一种
方法的 ASP 程序编写相对第二种方法要简单明了得多。
在这里作者就以我们常见的 ASP BBS 程序为例,来给大家分析一下如何
在 BBS 程序里实现分页显示功能,由于我们一般使用的 BBS 程序的数据库
记录数和同时访问的人数都不会太多,所以以下程序实例是使用的先前所介绍
的第一种分页显示方法。
进行 ADO 存取数据库时的分页显示,其实就是对 Recordset 的记录
进行操作。所以我们首先必须了解 Reordset 对象的属性和方法:
BOF 属性:目前指标指到 RecordSet 的第一笔。
EOF 属性:目前指标指到 RecordSet 的最后一笔。