ado 可以自己分页的,一、 ADO的RECORDSET对象
在作者的《再论ASP开发WEB数据库》一文中,介绍过ADO的各种属性和方法,其中RECORDSET对象是最常用的对象,首先通过以下语句建立RECORDSET对象:
Set conn = Server.CreartObject ("ADODB.connection")
Conn.open "DNS设置"
'以上语句建立ADO联接
Set rs = Server.CreatObject ("ADODB.Recordset")
Rs.open Sql , Conn , adopenStatic
'以上两条语句用于建立RECORDSET对象并打开数据库
通常,我们使用RECORDSET对象的Excute方法打开数据表,如下语句所示:
Set rs = conn.Excute ("SQL语句")
但是使用RECORDSET对象的Excute方法打开数据对象是只能向前滚动的(Forword-Only),当我们读取此类数据记录时,能够调用的只有其MoveNext方法,只能一步步向前移动记录,这种方法不能完成分页显示的功能,因此使用以下方法打开数据记录集:
rs.Open 数据表名或SQL语句,Connection对象,Recordset类型,锁定类型
然后利用RECORDSET对象的“rs.AbsolutePage=n”来设置当前数据记录。
二、 RECORDSET对象的OPEN函数
OPEN函数使用中的参数中,“数据表名或SQL语句”,指具体的要使用的数据表名或者是SQL查询语句,“Connection对象”是一个已经打开的数据库对象,“Recordset类型”有以下四种设置值:
RECORDSET类型设置值
意义
AdOpenForwordOnly (=0)
只读,记录只能向前滚动
AdOpenStatic (=3)
只读,记录可以自由滚动
AdOpenKeyset (=1)
读写,记录可以自由滚动
AdOpenDynamic (=2)
读写,记录可以自由滚动 *
*与上一条区别是该模式可以自动更新当前数据表的数据
“锁定类型”的设置值有以下四种:
锁定类型的设置值
意义
AdLockReadOnly (=1)
打开只读的数据记录
AdLockPressimistic (=2)
悲观锁定
AdLockOptimistic (=3)
乐观锁定
AdLockBatchOptimistic (=4)
批次乐观锁定
为了实现分页显示,在打开RECORDSET对象后,必须先设置PageSize属性(每页的数据记录条数),RECORDSET对象才能计算数据记录的总条数,如下语句设置每页大小为10行:
rs.PageSize = 10
则RECORDSET对象的PageCount属性将设为:
((记录总数-1)/10)+1 (页)
设置rs.PageSize属性后,则可以通过对AbsolutePage属性的设置,将当前数据记录设置到某一页的第一条记录上,如下语句:
rs. AbsolutePage = 3
则当前记录则移动到第3页(每页为10行)的第一条记录上,因此输出某一页数据记录的程序如下:
rs. AbsolutePage = Page 'Page为页码号
For I=1 to rs.PageSize '输出本页的每条记录
'些处输出数据记录
rs.MoveNext '记录移动到下一条
if rs.EOF then
exit for '若是记录尾则退出输出,因为若是最后一页,则可以没有足够的数据输出。
Next I