若要讓RecordSet移動(dòng)到上一條下一條的位置,讓我們先學(xué)會(huì)以下RecordSet對(duì)象的屬性和方法:
BOF屬性:當(dāng)前游標(biāo)指到RecordSet的第一條記錄。 EOF屬性:當(dāng)前游標(biāo)指到RecordSet的最后一條記錄。 Move方法:移動(dòng)游標(biāo)到RecordSet中的某一個(gè)記錄。 AbsolutePosition屬性:當(dāng)前游標(biāo)在RecordSet中的位置。 bookmark(書(shū)簽)屬性:對(duì)RecordSet的一條記錄做一個(gè)記號(hào)。 詳細(xì)介紹如下: BOF與EOF屬性 可以編寫(xiě)程式碼來(lái)檢查BOF與EOF屬性,來(lái)得知當(dāng)前游標(biāo)RecordSet的位置: BOF與EOF都為False:表示游標(biāo)位于RecordSet當(dāng)中。 BOF為T(mén)rue:當(dāng)前游標(biāo)指到RecordSet的第一條記錄。 EOF為T(mén)rue:當(dāng)前游標(biāo)指到RecordSet的最后一條記錄。 BOF與EOF都為T(mén)rue:在RecordSet里沒(méi)有任何的資料記錄。 Move方法 您可以用Move方法移動(dòng)游標(biāo)到RecordSet中的某一條記錄: MoveFirst方法:移至第一條記錄。 MoveLast方法:移至最后一條記錄。 MoveNext方法:移至下一條記錄。 MovePrevious方法:移至上一條記錄。 Move [n]方法:移動(dòng)游標(biāo)到第n條記錄,n由0算起。 AbsolutePosition屬性 若您需要確定當(dāng)前游標(biāo)在RecordSet中的位置,您可以用AbsolutePosition屬性。 AbsolutePosition屬性的數(shù)值為當(dāng)前游標(biāo)相對(duì)于第一條的位置,由1算起,即第一條的AbsolutePosition為1。 然而,不要誤以為AbsolutePosition是資料記錄的編號(hào),如果當(dāng)前RecordSet處于未定的狀態(tài),則 AsolutePosition的數(shù)值為1。 另外,在存取RecordSet時(shí),無(wú)法保證RecordSet每次都以同樣的順序出現(xiàn)。 若要啟用AbsolutePosition,必須先設(shè)定為使用用戶端cursor,asp碼如下: rs2.CursorLocation = 3 一、Move/AbsolutePosition的例子 讓我們看一個(gè)於ASP程式碼當(dāng)中使用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">書(shū)名</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">簡(jiǎn)介</FONT></TD> <TD ALIGN=CENTER BGCOLOR="#008080"><FONT COLOR="#FFFFFF">AbsolutePosition</FONT></TD> <TR> <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("書(shū)名") %></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("出版") %></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("圖片") %></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs2("簡(jiǎn)介") %></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,在用戶端使用瀏覽器,瀏覽執(zhí)行的結(jié)果,顯示上一條下一條的功能。 由Session("position")儲(chǔ)存這個(gè)使用者的RecordSet游標(biāo)位置,當(dāng)按下 [上一條] 超級(jí)連接時(shí),由<A href=rs14.asp?sel=prev>上一條</A>,將sel設(shè)定為prev,并重新執(zhí)行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")方法,將移動(dòng)游標(biāo)到第Session("position")個(gè)記錄,第一條記錄的Session("position")值為0。 當(dāng)按下 [下一條] 超級(jí)連接時(shí),由<A href=rs14.asp?sel=next>下一條</A>,將sel設(shè)定為next,并重新執(zhí)行rs14.asp的asp碼。由以上的程式部份,將Session("position")加一,然后使用Move Session("position")方法,將移動(dòng)指標(biāo)到第Session("position")個(gè)記錄。 AbsolutePosition部份,首先由rs2.CursorLocation = 3設(shè)定為使用用戶端cursor,以啟用AbsolutePosition,即可由<%= rs2.AbsolutePosition %>顯示AbsolutePosition的值。 為了判斷是否要顯示 [上一條] [下一條] 超級(jí)連接,由以下的程式部份: <% 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,比較當(dāng)前的位置Session("position")和第一條0、第末條RecordCount -1的位置,來(lái)判斷是否要顯示 [上一條] [下一條] 的超級(jí)連接。 |
|
來(lái)自: 悟靜 > 《數(shù)據(jù)庫(kù)》