<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ??NextRecordset?和?GetRows?大家可能用的很少!
    最近使用使用,不錯的好東東!
    對提高批量查詢,查詢紀(jì)錄集不是巨海量的情況很有效果
    NextRecordset?和?GetRows?是Recordset的兩個屬性(屬性還是方法我是常混淆是非#$#$,弄不清四下五除一)

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

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

    示例如下:

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

    ''======提取數(shù)據(jù)庫庫記錄====

    (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)?
    ''執(zhí)行結(jié)果將有兩個select?的結(jié)果集,當(dāng)前第一個select的recordset處于激活狀態(tài)?

    arrA=rs.GetRows?''----------取得SElECTa?Recordset的二維數(shù)組

    set?rs=rs.NextRecordset?
    ''------------最關(guān)鍵的一步,使用Nextrecordset激活下一個recordset

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

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

    ''========用取得的arrA?arrB進(jìn)行頁面處理,顯示數(shù)據(jù)結(jié)果======
    ''注意,arrA=GetRows?后得到的數(shù)組,第一維是代表列,第二維代表行

    rowsA=ubound(arrA,2)?''----提取arrA的第二維下標(biāo),相當(dāng)于取得recordset?的記錄行數(shù)
    rowsB=ubound(arrB,2)?''-----同上,提取arrB的第二維下標(biāo)?

    ''做數(shù)據(jù)循環(huán):

    ''第一個select表的循環(huán)
    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表循環(huán)
    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?''============小結(jié)========

    這樣的結(jié)果,再清楚不過!
    (1)使用Nextrecordset,可以處理多個select語句一次發(fā)送形成的結(jié)果集,減少網(wǎng)絡(luò)流量,必定加快速度!
    不使用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將記錄集提取到數(shù)組中(放到內(nèi)存,所以要求記錄集不要海大啦)
    用內(nèi)存的數(shù)組工作,而且省掉EOF,movenext等的判斷,誰更快!自不必說!
    (3)最最主要的,我們利用上二者,一次性將所有的數(shù)據(jù)提完,快速斷開數(shù)據(jù)庫連接和摧毀建立recordset數(shù)據(jù)庫對象,大大減少網(wǎng)絡(luò)流量!性能自然要提高很多!

    ?

    posted on 2006-05-26 13:55 jackstudio 閱讀(355) 評論(0)  編輯  收藏 所屬分類: asp
    主站蜘蛛池模板: 亚洲综合av永久无码精品一区二区| mm1313亚洲国产精品无码试看| 丝瓜app免费下载网址进入ios| 国产中文字幕免费观看| 亚洲国产日韩视频观看| 蜜臀98精品国产免费观看| 亚洲AV日韩AV鸥美在线观看| 中国一级全黄的免费观看| 亚洲无码高清在线观看| 美女隐私免费视频看| 国产美女精品久久久久久久免费 | 免费在线观看一级片| 亚洲午夜精品久久久久久浪潮| 国产精品亚洲AV三区| 在线免费观看色片| 亚洲国产精品一区二区三区在线观看| 18成禁人视频免费网站| 精品亚洲国产成AV人片传媒| 久久久久免费精品国产小说| 精品亚洲一区二区| a级毛片高清免费视频| 亚洲欧洲精品无码AV| 国产亚洲精品免费视频播放 | 中文字幕亚洲第一在线| 久久精品一区二区免费看| 亚洲成AV人片在| 久久综合九色综合97免费下载| 亚洲人成77777在线播放网站| 国产在线观看免费av站| 亚洲理论电影在线观看| 免费毛片在线看不用播放器 | yellow视频免费看| 精品亚洲成α人无码成α在线观看 | 最近中文字幕无免费| 亚洲精品午夜久久久伊人| 国产成人精品免费视频大全麻豆| 亚洲电影免费观看| 免费精品国产自产拍在| 亚洲卡一卡二卡乱码新区| 午夜时刻免费入口| 猫咪www免费人成网站|