让数据库中的记录用上一条下一条显示

作者:网络 来源:佚名 更新时间:2008-02-05 15:25:11 点击:
让数据库中的记录用上一条下一条显示


若要让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的位置,来判断是否要显示 [上一条] [下一条] 的超级连接。

商业源码热门下载www.html.org.cn