?? 23-1.cfm.htm
字號:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>用記錄集顯示記錄</TITLE>
</HEAD>
<BODY>
<B><FONT FACE="宋體" LANG="ZH-CN" SIZE=5><P ALIGN="JUSTIFY">用記錄集顯示記錄</P>
</B></FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">記錄集可以用來代表表中的記錄。與表一樣,一個記錄集包含一條或多條記錄(行),每個記錄包括一個或多個域(字段)。在任何時刻,只有一條記錄是當前記錄。</P>
<P ALIGN="JUSTIFY">要創建記錄集對象的一個實例,你可以使用連接對象的Execute()方法。當你用Execute()方法從一個數據庫返回查詢結果時,一個記錄集對象會被自動創建。這里有一個例子:</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"><%</P>
<P ALIGN="JUSTIFY">Set MyConn=Sever.CreateObject(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>ADODB.Connection</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">MyConn.Open </FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>FILEDSN=d:\Program Files\</P>
<P ALIGN="JUSTIFY"> Common Files\ODBC\Data Sources\MyData.dsn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3> </P>
<P ALIGN="JUSTIFY">Set RS=MyConn.Execute(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>SELECT * FROM Mytable</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">RS.Close</P>
<P ALIGN="JUSTIFY">MyConn.Close</P>
<P ALIGN="JUSTIFY">%></P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">在這個例子中,使用一個SQL SELECT語句從一個表Mytable中返回了所有的記錄。Execute()方法返回一個記錄集。在這個腳本中,該記錄集被分配給變量RS,然后關閉了這個記錄集。最后,關閉與數據庫的連接。</P>
<P ALIGN="JUSTIFY">記錄集中的每一條記錄都對應于表Mytable中的一條記錄。要顯示記錄集中的所有記錄,你只要簡單地做一個循環就可以,如下例所示:</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"><%</P>
<P ALIGN="JUSTIFY">Set MyConn=Sever.CreateObject(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>ADODB.Connection</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">MyConn.Open </FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>FILEDSN=d:\Program Files\</P>
<P ALIGN="JUSTIFY"> Common Files\ODBC\Data Sources\MyData.dsn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3> </P>
<P ALIGN="JUSTIFY">Set RS=MyConn.Execute(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>SELECT * FROM Mytable</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">WHILE NOT RS.EOF</P>
<P ALIGN="JUSTIFY"> Response.Write(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><BR></FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>&RS(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Mycolumn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>))</P>
<P ALIGN="JUSTIFY"> RS.MoveNext</P>
<P ALIGN="JUSTIFY">WEND</P>
<P ALIGN="JUSTIFY">RS.Close</P>
<P ALIGN="JUSTIFY">MyConn.Close</P>
<P ALIGN="JUSTIFY">%></P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">在這個例子中,WHILE</FONT><FONT FACE="Playbill,Courier New" SIZE=3>……</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>WEND循環用來掃描記錄集RS中的每一條記錄,把每個記錄的Mycolumn域輸出到瀏覽器。這段腳本顯示了表Mytable中的所有記錄。</P>
<P ALIGN="JUSTIFY">當一個記錄集對象中收集了數據時,當前記錄總是第一條記錄。在上面的例子中,調用了記錄集對象的MoveNext方法,使當前記錄移到下一條記錄。當所有的記錄都顯示完時,記錄集對象的EOF屬性的值將變為true,從而退出WHILE</FONT><FONT FACE="Playbill,Courier New" SIZE=3>……</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>WEND循環。</P>
<P ALIGN="JUSTIFY">一個記錄集對象有一個域集合,包含一個或多個域對象。一個域對象代表表中的一個特定的字段。例如,在上面的腳本中,使用了表達式RS(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Mycolumn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)來顯示字段Mycolumn。實際上,你可以通過許多中途徑顯示一個字段的值。下面的每一個表達式都可以顯示字段Mycolumn的值:</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">RS(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Mycolumn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">RS(0)</P>
<P ALIGN="JUSTIFY">RS.Fields(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Mycolumn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">RS.Fields(0)</P>
<P ALIGN="JUSTIFY">RS.Fields.Item(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Mycolumn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">RS.Fields.Item(0)</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">注意你既可以通過字段名,也可以通過順序號來指定一個字段。例如,你可以使用RS(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>Mycolumn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)或RS(0)來代表字段Mycolumn.兩種方法起到同樣的效果,因為字段Mycolumn對應于表中的第一個字段(第一個字段的順序號是0)。</P>
<P ALIGN="JUSTIFY">當你不知道一個記錄集中的字段名時,通過順序號指定一個域是有用處的。例如,下面的ASP腳本顯示了一個表中的所有記錄的所有字段(見圖23.1):</P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"><HTML></P>
<P ALIGN="JUSTIFY"><HEAD><TITLE>Show All Rows And Columns</TITLE></HEAD></P>
<P ALIGN="JUSTIFY"><BODY></P>
<P ALIGN="JUSTIFY"><%</P>
<P ALIGN="JUSTIFY">Set MyConn=Sever.CerateObject(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>ADODB.Connection</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">MyConn.Open </FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>FILEDSN=d:\Program Files\</P>
<P ALIGN="JUSTIFY"> Common Files\ODBC\Data Source\MyData.dsn</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">Set RS=MyConn.Execute(</FONT><FONT FACE="Playbill,Courier New" SIZE=3>“</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>SELECT * FROM Mytable</FONT><FONT FACE="Playbill,Courier New" SIZE=3>”</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>)</P>
<P ALIGN="JUSTIFY">%></P>
<P ALIGN="JUSTIFY"><TABLE BORDER=1></P>
<P ALIGN="JUSTIFY"><TR></P>
<P ALIGN="JUSTIFY"><% FOR i=0 to RS.Fields.Count-1 %></P>
<P ALIGN="JUSTIFY"> <TH><% =RS(i).Name *></TH></P>
<P ALIGN="JUSTIFY"><% Next %></P>
<P ALIGN="JUSTIFY"></TR></P>
<P ALIGN="JUSTIFY"><% While Not RS.EOF %></P>
<P ALIGN="JUSTIFY"><TR></P>
<P ALIGN="JUSTIFY"><% FOR i=0 TO RS.Fields.Count-1 %></P>
<P ALIGN="JUSTIFY"> <TD><% = RS(i) %></TD></P>
<P ALIGN="JUSTIFY"><% Next %></P>
<P ALIGN="JUSTIFY"></TR></P>
<P ALIGN="JUSTIFY"><%</P>
<P ALIGN="JUSTIFY">RS.MoveNext</P>
<P ALIGN="JUSTIFY">WEND</P>
<P ALIGN="JUSTIFY">RS.Close</P>
<P ALIGN="JUSTIFY">MyConn.Close</P>
<P ALIGN="JUSTIFY">%></P>
<P ALIGN="JUSTIFY"></TABLE></P>
<P ALIGN="JUSTIFY"></BODY></P>
<P ALIGN="JUSTIFY"></HTML></P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<B><P ALIGN="JUSTIFY">圖23.1 顯示一個數據表中的所有的記錄</P>
</B><P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY"> </P>
<P ALIGN="JUSTIFY">在這個例子中,域集合的Count屬性用來返回該記錄集中的域的數目。Name屬性用來返回每個域的名字。兩個FOR</FONT><FONT FACE="Playbill,Courier New" SIZE=3>……</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3>NEXT循環用來對記錄集中的所有字段進行操作。不論表中有多少記錄和字段,它們將被全部顯示。</P></FONT></BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -