[摘要]我们知道:对于一个留言簿,如果我们只让上网者能看到自己的留言而看不到其他人的留言,那么这类留言簿也就只能适用于某些特殊的地方(例如“客户意见返馈表”或“投诉留言”之类的留言,因为假如你是老板的话,你也不会愿意将自己的“伤疤”随便揭开给人看)。因此我们必须令每一位上网者都能看到留言簿中的所有留言。为...
我们知道:对于一个留言簿,如果我们只让上网者能看到自己的留言而看不到其他人的留言,那么这类留言簿也就只能适用于某些特殊的地方(例如“客户意见返馈表”或“投诉留言”之类的留言,因为假如你是老板的话,你也不会愿意将自己的“伤疤”随便揭开给人看)。因此我们必须令每一位上网者都能看到留言簿中的所有留言。为了提高页面的读取速度,我们将留言簿中的留言分成多页来显示,每页显示一定数目的留言数,譬如5条。
讲了这许多,那么到底如何实现留言记录的分页显示功能呢?如果我们对ADO的Recordset对象清楚的话,其实实现起来并不难。因为进行ADO存取数据库时的分页显示,就是对Recordset的记录进行操作。因此在没讲解程序之前,我觉得很有必要先给大家介绍一下有关Recordset对象方面的知识。
主要的ADO对象有三个:Connection、Command和Recordset。Connection对象能够建立数据与应用程序之间的联系,在建立联系后,Command和Recordset对象用来要求、存储或更新数据。Command对象主要担任数据库查询(Database Query)的角色,而
Recordset对象则是三者之中最为特别,功能亦最为强大,由数据取得的数据集合就存储于Recordset中,该返回的Recordset数据集合取得后再通过服务器端的脚本语言环境加于处理、分析、显示数据于客户浏览器上。
现将Recordset对象所提供的所有内部属性与其功能简述罗列如下:
AbsolutePage属性--目前的绝对数据页位置
AbsolutePosition属性--目前的绝对数据位置
ActiveConnection属性--与Connection、Command对象主动链接
BOF属性--数据集的开头边界
Bookmark属性--提供游标位置的书签功能
CacheSize属性--Recordset内数据所暂存的内存大小
CursorLocation属性--控制游标的类型为服务器端或客户端
CursorType属性--控制如何由服务器端数据库取回数据
EOF属性--记录集的结尾边界
EditMode属性--控制目前数据的处理状态
Filter属性--控制欲显示或隐藏的数据内容
LockType属性--控制数据更新的模式
MaxRecords属性--允许由服务器端取回的最大记录行数目
PageCount属性--数据页总数
PageSize属性--控制每一数据页内的记录行
RecordCount属性--由服务器端取回的记录行总数
Source属性--数据查询信息
Status属性--最近一行数据处理后的状态或信息
在了解了Recordset对象的以上属性和方法后,我们开始来学习如何实现留言记录的分页显示功能。在以下的学习当中,前面几章已学过的知识我在这里就不再赘述,我们只在这里重点学习处理留言记录分页的page2.asp文件。
'调用adovbs.inc文件和留言页面self2.asp。
'-=此处已略去Web页面的HTML代码,具体内容可下载源代码后查看=-
返回留言表单
<%
If Page <> 1 Then
Response.Write "< a="" href="page2.asp?Page=1">第一页<>"
Response.Write "< a="" href="page2.asp?Page=" "="" &="" (page-1)="" &="" "="">上一页<>"
End If
If Page <> rs.PageCount Then
Response.Write "< a="" href="page2.asp?Page=" "="" &="" (page+1)="" &="" "="">下一页<>" Response.Write "< a="" href="page2.asp?Page=" "="" &="" rs.pagecount="" &="" "="">最后一页
<>"
End If
%>
页数:<%=Page%>/<%=rs.PageCount%>
'<%=Page%>表示当前所在的页码,<%=rs.PageCount%>表示数据页的总数。
……