|          
若要让RecordSet移动到上一条下一条的位置,让我们先学会以下RecordSet对象的属性和方法:
 BOF属性:当前游标指到RecordSet的第一条记录。
 EOF属性:当前游标指到RecordSet的最后一条记录。
 Move方法:移动游标到RecordSet中的某一个记录。
 AbsolutePosition属性:当前游标在RecordSet中的位置。
 bookmark(书签)属性:对RecordSet的一条记录做一个记号。
 
 详细介绍如下:
 
 BOF与EOF属性
 
 可以编写程式码来检查BOF与EOF属性,来得知当前游标RecordSet的位置:
 
 BOF与EOF都为False:表示游标位于RecordSet当中。
 BOF为True:当前游标指到RecordSet的第一条记录。
 EOF为True:当前游标指到RecordSet的最后一条记录。
 BOF与EOF都为True:在RecordSet里没有任何的资料记录。
 Move方法
 
 您可以用Move方法移动游标到RecordSet中的某一条记录:
 
 MoveFirst方法:移至第一条记录。
 MoveLast方法:移至最后一条记录。
 MoveNext方法:移至下一条记录。
 MovePrevious方法:移至上一条记录。
 Move [n]方法:移动游标到第n条记录,n由0算起。
 AbsolutePosition属性
 
 若您需要确定当前游标在RecordSet中的位置,您可以用AbsolutePosition属性。
 
 AbsolutePosition属性的数值为当前游标相对于第一条的位置,由1算起,即第一条的AbsolutePosition为1。
 
 然而,不要误以为AbsolutePosition是资料记录的编号,如果当前RecordSet处于未定的状态,则
 
 AsolutePosition的数值为�1。
 
 另外,在存取RecordSet时,无法保证RecordSet每次都以同样的顺序出现。
 
 若要启用AbsolutePosition,必须先设定为使用用户端cursor,asp码如下:
 
 rs2.CursorLocation = 3
 
 
 一、Move/AbsolutePosition的例子
 
 让我们看一个於ASP程式码当中使用Move/AbsolutePosition做到上一条下一条记录功能的例子。
 
 譬如ASP程式码rs14.asp如下:
 
 <%
 
 Set conn1 = Server.CreateObject("ADODB.Connection")
 
 conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
 
 Set rs2 = Server.CreateObject("ADODB.Recordset")
 
 SqlStr = "SELECT * From 着作"
 
 'Enable AbsolutePosition
 
 rs2.CursorLocation = 3 'adUseClient
 
 rs2.Open SqlStr,conn1,1,1
 
 if Request("sel") = "prev" then
 
 Session("position") = Session("position") - 1
 
 rs2.Move Session("position")
 
 elseif Request("sel") = "next" then
 
 Session("position") = Session("position") + 1
 
 rs2.Move Session("position")
 
 else
 
 Session("position") = 0
 
 end if
 
 %>
 
 <% = Session("position") %>
 
 <TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
 
 <TR>
 
 <TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">书名</FONT></TD>
 
 <TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">出版</FONT></TD>
 
 <TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">图片</FONT></TD>
 
 <TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">简介</FONT></TD>
 
 <TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">AbsolutePosition</FONT></TD>
 
 <TR>
 
 <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("书名") %></TD>
 
 <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("出版") %></TD>
 
 <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("图片") %></TD>
 
 <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("简介") %></TD>
 
 <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2.AbsolutePosition %></TD>
 
 </TR>
 
 </TABLE>
 
 <% if Session("position") > 0 then %>
 
 <A href=rs14.asp?sel=prev>上一条</A>
 
 <% end if %>
 
 <% if Session("position") < rs2.RecordCount -1 then %>
 
 <A href=rs14.asp?sel=next>下一条</A>
 
 <% end if %>
 
 <% rs2.Close %>
 
 以上的 ASP程式码rs14.asp,在用户端使用浏览器,浏览执行的结果,显示上一条下一条的功能。
 
 由Session("position")储存这个使用者的RecordSet游标位置,当按下 [上一条] 超级连接时,由<A href=rs14.asp?sel=prev>上一条</A>,将sel设定为prev,并重新执行rs14.asp的asp码。由以下的程式部份,
 
 将Session("position")减一:
 
 if Request("sel") = "prev" then
 
 Session("position") = Session("position") - 1
 
 rs2.Move Session("position")
 
 elseif Request("sel") = "next" then
 
 Session("position") = Session("position") + 1
 
 rs2.Move Session("position")
 
 else
 
 Session("position") = 0
 
 end if
 
 然后使用Move Session("position")方法,将移动游标到第Session("position")个记录,第一条记录的Session("position")值为0。
 
 当按下 [下一条] 超级连接时,由<A href=rs14.asp?sel=next>下一条</A>,将sel设定为next,并重新执行rs14.asp的asp码。由以上的程式部份,将Session("position")加一,然后使用Move Session("position")方法,将移动指标到第Session("position")个记录。
 
 AbsolutePosition部份,首先由rs2.CursorLocation = 3设定为使用用户端cursor,以启用AbsolutePosition,即可由<%= rs2.AbsolutePosition %>显示AbsolutePosition的值。
 
 为了判断是否要显示 [上一条] [下一条] 超级连接,由以下的程式部份:
 
 <% if Session("position") > 0 then %>
 
 <A href=rs14.asp?sel=prev>上一条</A>
 
 <% end if %>
 
 <% if Session("position") < rs2.RecordCount -1 then %>
 
 <A href=rs14.asp?sel=next>下一条</A>
 
 <% end if %>
 
 就可以使用if Session("position") > 0、if Session("position") < rs2.RecordCount -1,比较当前的位置Session("position")和第一条0、第末条RecordCount -1的位置,来判断是否要显示 [上一条] [下一条] 的超级连接。
 
 
 |