欢迎来到天天文库
浏览记录
ID:53872069
大小:26.00 KB
页数:8页
时间:2020-04-10
《asp 知识从入门到精通,看完你就是网络编程高手.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ADO存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如20条。想不想了解如何实现分页显示?请看本文! 《动态网站设计十八般武艺--ASP篇》一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习、实践到再学习、再实践,大家已经能够熟练运用ASP的内建对象、ActiveX组件去编写一些基本的ASP应用程序。从我收到的朋友们的来信中可以
2、明显的感觉到,大家的ASP功力正不断地提升。最近很多朋友来信希望我写一些ASP在现实运用中的实例。因此,从本期开始我决定将《动态网站设计十八般武艺--ASP篇》的定位从介绍和学习ASP基础知识转向到ASP实际运行的探讨和深化。应朋友们的要求,在本期中我将给大家着重谈一谈“ADO存取数据库时如何分页显示”的问题。 什么是ADO存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定
3、数目的帖子数,譬如20条。这就是数据库查询的分页显示,如果你还不明白,去看看yahoo等搜索引擎的查询结果就会明白了。 那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,但主要有两种: 一、将数据库中所有符合查询条件的记录一次性的都读入recordset中,存放在内存中,然后通过ADORecordset对象所提供的几个专门支持分页处理的属性:PageSize(页大小)、PageCount(页数目)以及AbsolutePage(绝对页)来管理分页处理。 二、根据客户的指示,每次分别从符合查询条件的记录中
4、将规定数目的记录数读取出来并显示。 两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示来依次做判断分析从而达到分页显示的效果,而后者是先根据指示做出判断并将规定数目的符合查询条件的记录读入内存,从而直接达到分页显示的功能。 我们可以很明显的感觉到,当数据库中的记录数达到上万或更多时,第一种方法的执行效率将明显低于第二种方法,因为当每一个客户查询页面时都要将所有符合条件的记娣旁诜衿髂诖嬷校缓笤诮蟹忠车却恚绻庇谐?100个的客户在线查询,那么ASP应用程序的执行效率将大受影响。但是,当服务器上
5、数据库的记录数以及同时在线的人数并不是很多时,两者在执行效率上是相差无几的,此时一般就采用第一种方法,因为第一种方法的ASP程序编写相对第二种方法要简单明了得多。 在这里作者就以我们常见的ASPBBS程序为例,来给大家分析一下如何在BBS程序里实现分页显示功能,由于我们一般使用的BBS程序的数据库记录数和同时访问的人数都不会太多,所以以下程序实例是使用的先前所介绍的第一种分页显示方法。 进行ADO存取数据库时的分页显示,其实就是对Recordset的记录进行操作。所以我们首先必须了解Reordset对象的属性和方法:
6、 BOF属性:目前指标指到RecordSet的第一笔。 EOF属性:目前指标指到RecordSet的最后一笔。 Move方法:移动指标到RecordSet中的某一条记录。 AbsolutePage属性:设定当前记录的位置是位于哪一页AbsolutePosition属性:目前指标在RecordSet中的位置。 PageCount属性:显示Recordset对象包括多少“页”的数据。 PageSize属性:显示Recordset对象每一页显示的记录数。 RecordCount属性:显示Recordset对象记录的总
7、数。 下面让我们来详细认识一下这些重要的属性和方法 一、BOF与EOF属性 通常我们在ASP程序中编写代码来检验BOF与EOF属性,从而得知目前指标所指向的RecordSet的位置,使用BOF与EOF属性,可以得知一个Recordset对象是否包含有记录或者得知移动记录行是否已经超出该Recordset对象的范围。 如:$#@60;%ifnotrs.eofthen...%$#@62; $#@60;%ifnot(rs.bofandrs.eof)%$#@62; 若当前记录的位置是在一个Recordset对象第一行记
8、录之前时,BOF属性返回true,反之则返回false。 若当前记录的位置是在一个Recordset对象最后一行记录之后时,EOF属性返回true,反之则返回false。 BOF与EOF都为False:表示指标位于RecordSet的当中。 BOF为True:目前指标指到RecordSet的第一笔
此文档下载收益归作者所有