TA的每日心情 | 开心 14 小时前 |
---|
签到天数: 57 天 [LV.5]常住居民I
超级版主
 
- 积分
- 307601
|
一、BOF与EOF属性
通常我们在ASP程序中编写代码来检验BOF与EOF属性,从而得知目前指标所指向的RS的位置,使用BOF与EOF属性,可以得知一个R对象是否包含有记录或者得知移动记录行是否已经超出该R对象的范围。
如:
%%
%()%
若当前记录的位置是在一个R对象首行记录之前时,BOF属性返回,反之则返回。
若当前记录的位置是在一个R对象比较后一行记录之后时,EOF属性返回,反之则返回。
BOF与EOF都为F:表示指标位于RS的当中。
BOF为T:目前指标指到RS的首笔记录。EOF为T:目前指标指到RS的比较后一笔记录。
BOF与EOF都为T:在RS里没有任何记录。
二、M方法
您可以用M方法移动指标到RS中的某一笔记录,语法如下:
MNR,S
这里的“”为一个对象变量,表示一个想要移动当当前记录位置的R对象;“NR”是一个正负数运算式,设定当前记录位置的移动数目;“”是一个可选的项目,用来指定记录起始的标签。
所有的R对象都支持M方法,如果NR参数大于零,当前记录位置向末尾的方向移动;如果其小于零,则当前记录位置向开头的方向移动;如果一个空的R对象调用M方法,将会产生一个错误。
MF方法:将当前记录位置移至首笔记录。
ML方法:将当前记录位置移至比较后一笔记录。
MN方法:将当前记录位置移至下一笔记录。MP方法:将当前记录位置移至上一笔记录。
M[]方法:移动指标到第笔记录,由0算起。
、AP属性
AP属性设定当前记录的位置是位于哪一页的页数编号;使用PS属性将R对象分割为逻辑上的页数,每一页的记录数为PS(除了比较后一页可能会有少于PS的记录数)。这里必须注意并不是所有的数据提供者都支持此项属性,因此使用时要小心。
与AP属性相同,AP属性是以1为起始的,若当前记录为R的首行记录,AP为1。可以设定AP属性,以移动到一个指定页的首行记录位置。
四、AP属性
若您需要确定目前指标在RS中的位置,您可以用AP属性。
AP属性的数值为目前指标相对於首笔的位置,由1算起,即首笔的AP为1。
注意,在存取RS时,法保证RS每次都以同样的顺序出现。
若要启用AP,必须先设定为使用用户端(指针),码如下:
2CL=3
五、PC属性
使用PC属性,决定R对象包括多少“页”的数据。这里的“页”是数据记录的集合,大小等于PS属性的设定,即使比较后一页的记录数比PS的值少,比较后一页也算是PC的一页。必须注意也并不是所有的数据提供者都支持此项属性。
六、PS属性
PS属性是决定ADO存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。设定并建立一个页的大小,从而允许使用AP属性移到其它逻辑页的首条记录。PS属性能随时被设定。
七、RC属性
这也是一个非常常用和重要的属性,我们常用RC属性来找出一个R对象包括多少条记录。如:%=RSRC%
在了解了R对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的。首先,我们可以为PS属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过RC属性来确定记录的总数;再用记录总数除以PS就可得到所显示的页面总数;比较后通过AP属性就能完成对指定页的访问。好象很并不复杂呀,下面让我们来看看程序该如何现呢
我们建立这样一个简单的BBS应用程序,它的数据库中分别有以下五个字段:“ID”,每个帖子的自动编号;“”,每个帖子的主题;“”,加帖用户的姓;“”,用户的电子邮件地址;“”,加帖的时间。数据库的DSN为“”。我们将显示帖子分页的所有步骤放在一个为“SL()”的过程中,方便调用。程序如下:
\'----BBS显示帖子分页----
%SSL()%
%
PS=20\'设定开关,指定每一页所显示的帖子数目,默认为20帖一页
SC=SCO("ADODBC")
SRS=SCO("ADODBRS")
="SELECT*FROMIDDESC"
\'查询所有帖子,并按帖子的ID倒序排列
CO""
RS,C,1,1
IRSRC=0
"P对不起,数据库中没有相关信息!P"
RSPS=C(PS)\'设定PS属性的值
T=INT(RSPS*-1)*-1\'计算可显示页面的总数
PN=R("")
PN=""T
PN=1
PN=PN+1
PN=PN-1
SA=R("SA")
SA="上一页"T
PN=PN-1
SA="下一页"T
PN=PN+1
PN1T
PN=1
=1
RSAP=PN
RW"CENTER"
=RSPS*PN
=-RSPS+1
RSRC
=
=RSRC
RW"P=\'N\'B数据库查询结果:B"
RW"(共有"RSRC"条符合条件的信息,显示""-"")"
RW"TABLEWIDTH=600BORDER=1CELLPADDING=4CELLSPACING=0BGCOLOR=#FFFFFF"
RW"TRBGCOLOR=#5FB5E2FONTSIZE=2TDB主题BTDTDB用户BTDTDBEBTDTDB发布日期BTDFONTTRBGCOLOR=#FFFFFF"
D(RS)
RC=RSPS
DWNRSEOF0
I=1
RW"TRBGCOLOR=#FFFFFF"
ELSE
RW"TRBGCOLOR=#EEEEEE"
EI
=1-%
TD="-:9"A=\'=%=RS("ID")%\'%=RS("")%A
TD="-:9"%=RS("")%A
TD="-:9"=":%=RS("")%"%=RS("")%TD
TD="-:9"%=RS("")%
TR
%
RC=RC-1
RSMN
L
RS=RSNRS
L
CC
=
C=
%
TABLE
FORMMETHOD=GETACTION=""
INPUTTYPE="HIDDEN"NAME=""VALUE="%=PN%"
%
PN1T
"INPUTTYPE=SUBMITNAME=\'SA\'VALUE=\'上一页\'"
RC=0PNT
"INPUTTYPE=SUBMITNAME=\'SA\'VALUE=\'下一页\'"
"FORM"
E |
|