亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

asp中記錄集對象的getrows和getstring用法分析

2024-05-04 11:08:09
字體:
來源:轉載
供稿:網友
asp中記錄集對象的getrows和getstring用法分析,需要的朋友可以參考下
 
 
 
GetRows 方法 
將 Recordset 對象的多個記錄復制到數組中。 
語法 
復制代碼代碼如下:

array = recordset.GetRows( Rows, Start, Fields ) 

返回值 
返回二維數組。 
參數 
Rows 可選,長整型表達式,指定要檢索記錄數。默認值為 adGetRowsRest (-1)。 
Start 可選,字符串或長整型,計算得到在 GetRows 操作開始處的記錄的書簽。也可使用下列 BookmarkEnum 值。 
常量           說明 
AdBookmarkCurrent   從當前記錄開始。 
AdBookmarkFirst     從首記錄開始。 
AdBookmarkLast     從尾記錄開始。 

Fields 可選,變體型,代表單個字段名、順序位置、字段名數組或順序位置號。ADO 僅返回這些字段中的數據。 
說明 
使用 GetRows 方法可將記錄從 Recordset 復制到二維數組中。第一個下標標識字段,第二個則標識記錄號。當 GetRows 方法返回數據時數組變量將自動調整到正確大小。 
如果不指定 Rows 參數的值,GetRows 方法將自動檢索 Recordset 對象中的所有記錄。如果請求的記錄比可用記錄多,則 GetRows 僅返回可用記錄數。 
如果 Recordset 對象支持書簽,則可以通過傳送該記錄的 Bookmark 屬性值,來指定 GetRows 方法將從哪個記錄開始檢索數據。 
如要限制 GetRows 調用返回的字段,則可以在 Fields 參數中傳送單個字段名/編號或者字段名/編號數組。 
在調用 GetRows 后,下一個未讀取的記錄成為當前記錄,或者如果沒有更多的記錄,則 EOF 屬性設置為 True。 
GetString方法 
查詢數據庫顯示表格時,我們常用Do While()...Loop 或者是For...Next循環來顯示表格,這樣當我們要查詢大量數據時,勢必會比較慢。這時,我們就可以用記錄集對象提供的GetString()方法(ADO必須升級到2.0)。 
語法 
復制代碼代碼如下:

Str=objRecordset.GetString(format,n,coldel,rowdel,nullexpr) 

參數說明: 
objRecordset:已打開的記錄集對象; 
format:可選,一般取默認值(默認值為2) 
n:可選,顯示記錄的數量,默認值為全部顯示 
coldel:可選,列界定符 
rowdel:可選,行界定符 
nullexpr:可選,該參數用于填充空字段! 
有了GetString方法,我們就可以僅用一個Response.Write來顯示所有的輸出了,它就象是能判斷Recordset是否為EOF的DO ... LOOP循環。 
用這個方法,可以自動的循環輸出字符串,就不用再去while或for循環了,只要建立了RS對象,并且執行了相應操作,不管那是返回一條或者多條記錄,甚至是空記錄,getstring照樣工作。 
要從Recordset的結果里生成HTML表格,我們只需關心GetString的5個參數中的3個:coldel(分隔記錄集的列的HTML代碼),rowdel(分隔記錄集的行的HTML代碼),和nullexpr(當前記錄為空時應生成的HTML代碼)。 

復制代碼代碼如下:

<TABLE Border=1> 
<TR><TD> 
<% = Response.Write rs.GetString( , , "</TD><TD>", "</TD></TR><TR>", ) %> 
</TABLE> 

這樣寫的HTML結果如下: 
復制代碼代碼如下:

<TABLE Border=1> 
<TR> 
<TD>row1, field1 value</TD> 
<TD>row1, field2 value</TD> 
</TR> 
<TR> 
<TD>row2, field1 value</TD> 
<TD>row2, field2 value</TD> 
</TR> 
</TABLE> 

這里有個BUG了,再看看生成下拉選單: 
復制代碼代碼如下:

<% 
Set RS = conn.Execute("Select theValue,theText FROM selectOptionsTable orDER BY theText") 
optSuffix = "</OPTION>" & vbNewLine 
valPrefix = "<OPTION Value='" 
valSuffix = "'>" 
opts = RS.GetString( , , valSuffix, optSuffix & valPrefix, "--error--" ) 
' Next line is the key to it! 
opts = Left( opts, Len(opts)-Len(valPrefix) ) 

Response.Write "<Select ...>" & vbNewLine 
Response.Write valPrefix & opts 
Response.Write "</Select>" 
%> 

如果想建立一個正確的表格的話,解決那個BUG,只要這樣做就可以了: 
復制代碼代碼如下:

<% 
Set RS = conn.Execute("Select * FROM table") 
tdSuffix = "</TD>" & vbNewLine & "<TD> 
trPrefix = "<TR>" & vbNewLine & "<TD>" 
trSuffix = "</TD>" & vbNewLine & "</TR>" & vbNewLine & "<TR>" & vbNewLine 
opts = RS.GetString( , , tdSuffix, trSuffix & trPrefix, "--error--" ) 
' Next line is the key to it! 
opts = Left( opts, Len(opts)-Len(trPrefix) ) 
Response.Write "<TABLE Border=1 CellPadding=5>" & vbNewLine 
Response.Write trPrefix & opts 
Response.Write "</TABLE>" & vbNewLine 
%> 

再介紹一個完全不同的辦法: 
復制代碼代碼如下:

<% 
SQL = "Select '<OPTION Value=''',value,'''>',text,'</OPTION>' FROM table orDER BY text" 
Set RS = conn.Execute(SQL) 
Response.Write "<Select>" & vbNewLine & RS.GetString(,,"",vbNewLine) & "</Select>" 
%> 

你用過嗎。。。 

看到了嗎?可以直接從查詢中返回結果。 
再進一步,您可以這樣做: 
復制代碼代碼如下:

<% 
SQL = "Select '<OPTION Value=''' & value & '''>' & text & '</OPTION>' FROM table orDER BY text" 
Set RS = conn.Execute(SQL) 
Response.Write "<Select>" & vbNewLine & RS.GetString(,,"",vbNewLine) & "</Select>" 
%> 

下面是一份完整的示例: 
Script Output: 
711855 Wednesday 23 3/23/2005 1:33:37 AM 
711856 Wednesday 23 3/23/2005 1:23:00 AM 
711857 Wednesday 23 3/23/2005 1:26:34 AM 
711858 Wednesday 23 3/23/2005 1:33:53 AM 
711859 Wednesday 23 3/23/2005 1:30:36 AM 

ASP完整代碼如下: 
復制代碼代碼如下:

<% 
' Selected constants from adovbs.inc: 
Const adClipString = 2 

' Declare our variables... always good practice! 
Dim cnnGetString ' ADO connection 
Dim rstGetString ' ADO recordset 
Dim strDBPath ' Path to our Access DB (*.mdb) file 
Dim strDBData ' String that we dump all the data into 
Dim strDBDataTable ' String that we dump all the data into 
' only this time we build a table 
' MapPath to our mdb file's physical path. 
strDBPath = Server.MapPath("db_scratch.mdb") 

' Create a Connection using OLE DB 
Set cnnGetString = Server.CreateObject("ADODB.Connection") 

' This line is for the Access sample database: 
'cnnGetString.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";" 
' We're actually using SQL Server so we use this line instead. 
' Comment this line out and uncomment the Access one above to 
' play with the script on your own server. 
cnnGetString.Open "Provider=SQLOLEDB;Data Source=10.2.1.214;" _ 
& "Initial Catalog=samples;User Id=samples;Password=password;" _ 
& "Connect Timeout=15;Network Library=dbmssocn;" 

' Execute a simple query using the connection object. 
' Store the resulting recordset in our variable. 
Set rstGetString = cnnGetString.Execute("Select * FROM scratch") 

' Now this is where it gets interesting... Normally we'd do 
' a loop of some sort until we ran into the last record in 
' in the recordset. This time we're going to get all the data 
' in one fell swoop and dump it into a string so we can 
' disconnect from the DB as quickly as possible. 
strDBData = rstGetString.GetString() 

' Since I'm doing this twice for illustration... I reposition 
' at the beginning of the RS before the second call. 
rstGetString.MoveFirst 

' This time I ask for everything back in HTML table format: 
strDBDataTable = rstGetString.GetString(adClipString, -1, _ 
&"</td><td>", "</td></tr>" & vbCrLf & "<tr><td>", " ") 

' Because of my insatiable desire for neat HTML, I actually 
' truncate the string next. You see, GetString only has 
' a parameter for what goes between rows and not a seperate 
' one for what to place after the last row. Because of the 
' way HTML tables are built, this leaves us with an extra 
' <tr><td> after the last record. GetString places the 
' whole delimiter at the end since it doesn't have anything 
' else to place there and in many situations this works fine. 
' With HTML it's a little bit weird. Most developers simply 
' close the row and move on, but I couldn't bring myself to' 
leave the extra row... especially since it would have a 
' different number of cells then all the others. 
' What can I say... these things tend to bother me. ;) 
strDBDataTable = Left(strDBDataTable, Len(strDBDataTable) - Len("<tr><td>")) 

' Some notes about .GetString: 
' The Method actually takes up to 5 optional arguments: 
' 1. StringFormat - The format in which to return the 
' recordset text. adClipString is the only 
' valid value. 
' 2. NumRows - The number of rows to return. Defaults 
' to -1 indicating all rows. 
' 3. ColumnDelimiter - The text to place in between the columns. 
' Defaults to a tab character 
' 4. RowDelimiter - The text to place in between the rows 
' Defaults to a carriage return 
' 5. NullExpr - Expression to use if a NULL value is 
' returned. Defaults to an empty string. 
' Close our recordset and connection and dispose of the objects. 
' Notice that I'm able to do this before we even worry about 
' displaying any of the data! 
rstGetString.Close 
Set rstGetString = Nothing 
cnnGetString.Close 
Set cnnGetString = Nothing 

' Display the table of the data. I really don't need to do 
' any formatting since the GetString call did most everything 
' for us in terms of building the table text. 
Response.Write "<table border=""1"">" & vbCrLf 
Response.Write "<tr><td>" 
Response.Write strDBDataTable 
Response.Write "</table>" & vbCrLf 
' FYI: Here's the output format you get if you cann GetString 
' without any parameters: 
Response.Write vbCrLf & "<p>Here's the unformatted version:</p>" & vbCrLf 
Response.Write "<pre>" & vbCrLf 
Response.Write strDBDataResponse.Write "</pre>" & vbCrLf 

' That's all folks! 
%> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成年人网站| 亚洲网站视频福利| 日本成人精品在线| 欧美激情一级欧美精品| xxav国产精品美女主播| 久久精品视频一| 欧美性在线观看| 亚洲图片欧美日产| 欧美乱人伦中文字幕在线| 亚洲精品久久久久| 中文字幕欧美国内| 亚洲视频在线免费观看| 亚洲日本欧美日韩高观看| 国产日韩换脸av一区在线观看| 欧美电影免费观看大全| 久久久国产精彩视频美女艺术照福利| 国产成人精品视频| 国产精品视频地址| 97在线免费观看视频| 亚洲欧美中文日韩在线| 久久人人爽亚洲精品天堂| 中文字幕亚洲无线码在线一区| 国外成人在线播放| 亚洲精品国产拍免费91在线| 久久精品国产成人| 亚洲三级av在线| 亚洲第一网中文字幕| 国产精品久久久久久久久久久久久久| 欧美成aaa人片免费看| 亚洲老司机av| 欧美午夜视频在线观看| 最近2019好看的中文字幕免费| 亚洲bt欧美bt日本bt| 中文在线资源观看视频网站免费不卡| 亚洲精品v欧美精品v日韩精品| 欧美不卡视频一区发布| 91国产高清在线| 亚洲自拍偷拍视频| 色视频www在线播放国产成人| 久久男人的天堂| 亚洲欧洲自拍偷拍| 91精品国产色综合久久不卡98| 国产精品日韩精品| 亚洲国产精品嫩草影院久久| 日本久久久久久| 91大神在线播放精品| 国产综合视频在线观看| 欧美影院在线播放| 国产91精品黑色丝袜高跟鞋| 亚洲四色影视在线观看| 久久久电影免费观看完整版| 欧美中文字幕精品| 久久亚洲影音av资源网| 色www亚洲国产张柏芝| 国产精品免费福利| 国产精品国产三级国产专播精品人| 欧美激情一二三| 国产欧美精品一区二区三区-老狼| 亚洲精品久久久久久久久| 日韩亚洲欧美中文在线| 亚洲一区二区三区在线免费观看| 亚洲欧洲中文天堂| 国产综合色香蕉精品| 亚洲欧美日韩爽爽影院| 国产精品久久久久久av福利软件| 亚洲电影免费观看高清完整版| 在线观看欧美视频| 在线性视频日韩欧美| 91日本视频在线| 中文字幕不卡在线视频极品| 国产aaa精品| 日韩综合中文字幕| 亚洲日本中文字幕免费在线不卡| 国产成人极品视频| 欧美性视频在线| 日韩黄在线观看| 狠狠躁18三区二区一区| 国产一区二区三区中文| 亚洲成人aaa| 欧美福利视频在线| 日韩av在线免费播放| 欧美在线xxx| 国产精品日日摸夜夜添夜夜av| 欧美一级高清免费| 国内揄拍国内精品| 欧美激情欧美激情在线五月| 国产在线播放不卡| 欧美精品九九久久| 国产在线观看精品一区二区三区| 欧美性在线观看| 97欧美精品一区二区三区| 日韩高清电影免费观看完整版| 91亚洲一区精品| 欧美黄网免费在线观看| 国产精品视频午夜| 国内揄拍国内精品少妇国语| 国产精品九九九| 亚洲a区在线视频| 欧美激情按摩在线| 色妞一区二区三区| 国产成人精品999| 久久久久久这里只有精品| 精品久久久久久久久久ntr影视| 日韩av电影手机在线观看| 成人黄色片网站| 日韩电影在线观看永久视频免费网站| 韩国v欧美v日本v亚洲| 中文字幕精品www乱入免费视频| 国产精品自产拍在线观看| 日韩欧美aaa| 亚洲成人黄色在线观看| 国产精品自拍小视频| 精品久久久91| 国产欧美精品日韩| 91社影院在线观看| 亚洲欧美在线免费观看| 亚洲免费小视频| 欧美日韩中文在线| 8050国产精品久久久久久| 欧美亚洲国产视频小说| 精品丝袜一区二区三区| 国产精品色视频| 国产成人鲁鲁免费视频a| 国产精品久久久久久亚洲调教| 久久久久久97| 欧美夫妻性生活视频| 日韩av资源在线播放| 亚洲jizzjizz日本少妇| 久久免费精品日本久久中文字幕| 欧美丰满少妇xxxxx做受| 亚洲片av在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲欧美制服综合另类| 亚洲人成网站777色婷婷| 国产精品久久久久久久久久久久| 精品国产区一区二区三区在线观看| 欧美激情欧美激情在线五月| 久久久国产精彩视频美女艺术照福利| 国产成人a亚洲精品| 国产精品高潮在线| 午夜精品久久久久久99热| 精品亚洲国产视频| 亚洲性生活视频在线观看| 欧美成人合集magnet| 欧美日韩亚洲高清| 国自在线精品视频| 日韩av在线最新| 国产日产久久高清欧美一区| 久久久噜久噜久久综合| 色综合色综合久久综合频道88| 国产91av在线| 久久久久免费视频| 亚洲精品美女视频| 亚洲精品视频免费| 成人在线免费观看视视频| 亚洲欧洲在线免费| 亚洲自拍偷拍一区| 91免费在线视频| 日韩在线视频播放| 成人黄色短视频在线观看| 日韩av三级在线观看| 午夜精品视频网站| 亚洲国产精品热久久| 国产va免费精品高清在线观看|