麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

NextRecordset 和 GetRows 雙簧合奏

2020-07-27 13:29:03
字體:
來源:轉載
供稿:網友
NextRecordset 和 GetRows 大家可能用的很少!
最近使用使用,不錯的好東東!
對提高批量查詢,查詢紀錄集不是巨海量的情況很有效果
NextRecordset 和 GetRows 是Recordset的兩個屬性(屬性還是方法我是常混淆是非#$#$,弄不清四下五除一)

GetRows ---> 將recordset記錄集提取到一個二維數組中,我們對recordset數據的行為就轉移到該數組,可以早早的斷開紀錄集,不用再使用元數據操作,rs.movnext, while not rs.eof等可以省掉

NextRecordset ----> 就是在一次提交多個查詢,形成多個reordset結果集的情況下,提供一個離開當前工作的recordset,轉移到第二個recordset的方法!
主要是用在多個SELECT形成的結果集的情況

示例如下:

dim SQL,Rs,arrA,arrB,rowsA,rowsB

''======提取數據庫庫記錄====

(adodb.connection 的連接部分省略,假定CONN.open CONNstr)
SQL=" select Ca1,Ca2,Ca3,Ca4 from TableA " ''---------------SELECTa
SQL=SQL&" select Cb1,Cb2,Cb3,Cb4,Cb5 from TableB " ''-------------SELECTb

Set Rs=conn.execute(SQL) 
''執行結果將有兩個select 的結果集,當前第一個select的recordset處于激活狀態 

arrA=rs.GetRows ''----------取得SElECTa Recordset的二維數組

set rs=rs.NextRecordset 
''------------最關鍵的一步,使用Nextrecordset激活下一個recordset

arrB=rs.GetRows ''----------再次取得第二個SElECTb Recordset的二維數組 

Rs.close
set rs=nothing ''---------盡早釋放數據庫對象,關閉記錄集
CONN.close
set CONN=Nothing
這樣,我們所有關于數據庫的數據干干凈凈的提取完成,用最早的時間釋放數據庫資源 
''-----------//

''========用取得的arrA arrB進行頁面處理,顯示數據結果======
''注意,arrA=GetRows 后得到的數組,第一維是代表列,第二維代表行

rowsA=ubound(arrA,2) ''----提取arrA的第二維下標,相當于取得recordset 的記錄行數
rowsB=ubound(arrB,2) ''-----同上,提取arrB的第二維下標 

''做數據循環:

''第一個select表的循環
response.write "<table>"
For i=0 to rowsA
response.write "<tr>
response.write "<td>"&arrA(i,0)&"</td>" ''tableA.Ca1 
response.write "<td>"&arrA(i,1)&"</td>" ''tableA.Ca2 
response.write "<td>"&arrA(i,2)&"</td>" ''tableA.Ca3 
response.write "<td>"&arrA(i,3)&"</td>" ''tableA.Ca4 
response.write "</tr>"
Next
response.write "</table>

''第二個select表循環
response.write "<table>"
For i=0 to rowsB
response.write "<tr>
response.write "<td>"&arrB(i,0)&"</td>" ''tableB.Cb1 
response.write "<td>"&arrB(i,1)&"</td>" ''tableB.Cb2 
response.write "<td>"&arrB(i,2)&"</td>" ''tableB.Cb3 
response.write "<td>"&arrB(i,3)&"</td>" ''tableB.Cb4 
response.write "<td>"&arrB(i,4)&"</td>" ''tableB.Cb5 
response.write "</tr>"
Next
response.write "</table>

''--------OVER

REM ''============小結========

這樣的結果,再清楚不過!
(1)使用Nextrecordset,可以處理多個select語句一次發送形成的結果集,減少網絡流量,必定加快速度!
不使用NextRecordset 則會這樣操作:
SQL="select Ca1,Ca2,Ca3, Ca4 From TableA "
set Rs=CONN.execute (SQL)
SQL=" select Cb1,Cb2,Cb3,Cb4,Cb5 from TableB "
Set Rs=CONN.execute (SQL)
(2)使用GetRows將記錄集提取到數組中(放到內存,所以要求記錄集不要海大啦)
用內存的數組工作,而且省掉EOF,movenext等的判斷,誰更快!自不必說!
(3)最最主要的,我們利用上二者,一次性將所有的數據提完,快速斷開數據庫連接和摧毀建立recordset數據庫對象,大大減少網絡流量!性能自然要提高很多!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜爽爽爽男女免费观看hd | 一区二区三区国产在线 | 久久成人综合网 | 黄色试看视频 | 黄色大片在线免费看 | 主播粉嫩国产在线精品 | 高清在线国产 | 国产精品久久久久久久久久10秀 | 免费一级a毛片在线播放视 日日草夜夜操 | av在线免费看网址 | a网站在线| 看国产一级毛片 | 日本精品一区二区 | 中国av一级片| 久久男人视频 | 在线看免费的a | 色综合激情 | 九九视频精品在线 | 色网免费观看 | 在线成人av观看 | 性生活视频一级 | 国产91九色| 视频在线色 | 亚洲成人免费电影 | 免费观看黄色一级视频 | 热99在线视频 | 成人黄色小视频在线观看 | 欧美77| 免费毛片在线视频 | xxxxxx打针视频vk | 久久久国产精品视频 | 国产在线精品一区二区夜色 | 国产精品99精品 | 制服丝袜日日夜夜 | 亚洲福利在线免费观看 | 超久久 | 久久免费视频8 | 女人久久久www免费人成看片 | 久久欧美亚洲另类专区91大神 | 国产免费高清 | 亚洲国产精品一区二区久久 |