查看ADO分页的相关使用说明

开发 后端
ADO分页内容包括:更容易的设计集成、扩充的部署选项、更为丰富多彩的登录和个性化服务以及更好的数据访问和同步。

当然同样可以改造成其他的ADO分页,PHP语言所使用。为了更好的使用这样的ADO分页代码,其混合了函数语言和物件导向程序编制语言,并且完美的适用于编程、算法、技术和探索性开发,因此可以在使用的过程当中感受到趣味性和吸引力。

1,rs.RecordCount
很显然,RecordCount就是用来显示数据库表中一共多少条记录的,也可以形象地说表中一共有多少行。经常用在分页中就是一共有N篇文章等总计的信息显示。

2,rs.PageSize
rs.PageSize也就是一页的大小,也就表示一张ADO分页可以显示记录的条数。值是自己定义的,比如经常看到的每页显示N篇文章之类的信息。

3,rs.AbsolutePage 和 rs.pagecount

说到分页,一定不能不提到 rs.AbsolutePage 。记录集的AbsolutePage属性最主要的作用就是决定着当前显示的是第几页。它的值是有依据的,指定了rs.PageSize,那么rs.pagecount的信息值就是rs.RecordCount和rs.PageSize整除结果。比如:总信息记录rs.RecordCount共20条,每页显示条数rs.PageSize设为5条,那么页数rs.pagecount数就是20/5=4页次,而rs.AbsolutePage则就只能是第1页,第2页……第4页。

先看ADO分页函数:

这是一种非常高效的分页算法。当数据表中的数据量成百上千万的时候,上面的这种分页算法的响应时间是非常短的,通常在几十毫秒之内。原理很简单,就是每次分页,我只取需要的几十条记录而已,使用SELECT TOP也正是基于这样的考虑。

上面的两个分页算法的例子中,flymorn都使用了时间字段time来进行ADO分页,因为在我接触的绝大多数系统中,我们都需要把用户最近更新(包括新添加的记录以及新修改过的老记录)的内容展示在前面,如果仅仅使用自动编号的ID作为排序字段的话,用户编辑过的老信息将无法展示在前面。这就是flymorn使用时间字段的原因了。

这里又涉及到聚合索引的问题了。默认情况下,我们是以自动编号ID作为主键,并且用作聚合索引列,如果上面的算法中,使用这样的ID列来排序的话,效率会更高,数据库响应的时间会更少;然而,我提到了最近更新的内容需要展示在前面的问题。#t#

所以,我们必须使用时间字段来排序。因此,为了更高的分页效率,我们可以在数据库设计的时候,把这个时间字段设计为聚合索引列。 通过这样的设计后,整个分页效率就会得到非常高的提高了。

然而,把这个时间字段作为聚合索引列,存在又一个小问题。因为数据表在排列数据的时候,是按照聚合索引列来进行物理排序的,当用户添加数据的时候,没有什么问题,在数据表的末尾添加就行了;当用户编辑信息的时候。

数据库需要根据这个聚合索引列,把刚编辑过的信息也提到表的末尾,这里就需要耗费一定的时间了。就是说,当我们以时间字段为聚合索引列的时候,我们就需要在 ADO分页的时候多耗费一点的时间。

责任编辑:chenqingxiang 来源: CSDN
相关推荐

2009-12-29 14:28:58

ADO数据

2009-12-31 14:39:24

ADO测试程序

2009-12-23 09:14:52

ADO.NET连接池

2009-12-25 17:01:21

ADO参数

2009-12-21 14:55:49

ADO.NET对象

2009-12-31 09:42:41

ADO对象模型

2009-12-18 14:20:26

ADO.NET组件

2009-12-18 15:11:50

ADO.NET类

2009-12-25 18:12:43

WPF装饰器

2009-12-18 13:52:39

ADO.NET设计器

2009-12-22 10:43:48

ADO.NET类库

2009-12-18 17:06:37

ADO.NET 数据库

2009-12-23 14:53:28

ADO.NET连接池

2009-12-24 09:14:52

ADO.Net Tea

2009-12-28 11:23:38

WPF资源文件

2009-12-25 15:57:14

ADO调用

2009-12-23 15:13:15

Ado.Net Syb

2009-12-21 16:07:52

ADO.NET数据库

2009-12-21 14:55:49

ADO.NET类库

2009-12-23 13:23:29

ADO.Net Sql
点赞
收藏

51CTO技术栈公众号