佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 把RS.GetRows看得更清楚

把RS.GetRows看得更清楚

熱門標(biāo)簽:Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù) Linux服務(wù)器 阿里云 電子圍欄 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 服務(wù)器配置 團(tuán)購(gòu)網(wǎng)站
用過(guò)Rs.GetRow的兄弟都知道Rs.GetRow可以更有效率地獲取小容量數(shù)據(jù)(不適合大容量數(shù)據(jù),尤其涉及大對(duì)象的時(shí)候,容易暴掉,我就爆過(guò)一次),PuterJam應(yīng)用得不錯(cuò)的說(shuō)。

但是Rs.GetRow返回的是一個(gè)二維數(shù)組,我們經(jīng)常不知道哪段對(duì)哪段。這個(gè)很麻煩,于是編了一小段程序方便調(diào)試用:


    Dim ds
    Set objRS=objConn.Execute("SELECT * FROM [blog_Upload] WHERE ([ul_Quote] LIKE '%"  CStr(ID)  "%') ")
        ds=objRS.GetRows
    objRS.Close()
    Set objRS=Nothing

' 建立一個(gè)表格
Response.Write "Written By Sipo(www.dc9.cn)table align=""center"" border=""1"">"
Response.Write vbcrlf
Response.Write "tr>td>/td>"
For j = 0 To UBound(ds, 1)
Response.Write "td>ds("j",X)/td>"
Next
Response.Write "/tr>"
' 每一行
  For i = 0 To UBound(ds, 2)
    Response.Write "tr>td>ds(X,"i")/td>" vbcrlf
    ' 每一列
    For j = 0 To UBound(ds, 1)
      Response.Write "td>"
      If IsNull(ds(j, i)) Then 
      Response.Write "Null"
      Else
      Response.Write ds(j, i)
      End If
      Response.Write "br>"
      Response.Write "b>ds("j","i")/b>"
      Response.Write "/td>"
    Next

    Response.Write "/tr>"  vbcrlf
  Next

  Response.end






--------------------------------------------------------------------------------

獻(xiàn)給菜鳥(niǎo)們:
關(guān)于GetRows的小資料:


ADO也提供更有效率方法來(lái)取得數(shù)據(jù)。GetRows 方法傳回一個(gè)二維的數(shù)組變量,每一行對(duì)應(yīng)Recordset中的一筆記錄,且每一列對(duì)應(yīng)到記錄中的字段。此方法的語(yǔ)法如下: 

varArray = rs.GetRows([Rows], [Start], [Fields]) 

Rows 是要讀取記錄的數(shù)量;如果想要取得Recordset所有記錄,可用-1或省略此參數(shù)。Start 是指出第一個(gè)被讀取記錄的書簽;也可以是下列列舉常數(shù)中的一個(gè):0-adBookmarkCurrent(目前記錄)、1-adBookmarkFirst(第一筆記錄)、或2-adBookmarkLast(最后記錄)。 

Fields 是可選擇的字段名稱數(shù)組,其用來(lái)限制要讀取的數(shù)據(jù)量。(也可指定單一字段名稱、單一字段索引、或者一個(gè)字段索引數(shù)組)。當(dāng)設(shè)定 Rows 為少于Recordset記錄筆數(shù)時(shí),第一筆未讀取的記錄變成現(xiàn)行記錄。若省略 Rows 參數(shù)或設(shè)定為-1-adGetRowsRest或大于未讀取的筆數(shù)時(shí),GetRows 方法會(huì)讀取所有記錄并讓Recordset在EOF狀態(tài),而不會(huì)產(chǎn)生任何錯(cuò)誤。 

當(dāng)處理目的變量數(shù)組的數(shù)據(jù)時(shí),應(yīng)該記得數(shù)據(jù)儲(chǔ)存方式是有點(diǎn)相反的感覺(jué):數(shù)組中第一維定義Recordset的字段(數(shù)據(jù)行),第二維定義Recordset的數(shù)據(jù)列。

GetRows 方法通常比一次讀一筆記錄的循環(huán)要來(lái)得快些,但使用這方法時(shí),必須確定Recordset未包含太多記錄;否則,會(huì)很容易以一個(gè)非常大的變量數(shù)組來(lái)填滿所有內(nèi)存?;谙嗤脑?,得小心不要包括任何BLOB(Binary Large Object)或CLOB(Character Large Object)字段;若如此做的化,應(yīng)用程序一定會(huì)爆掉,特別是對(duì)于較大的Recordset而言。最后,記住此方法傳回的變量數(shù)組是以0為基底的;傳回記錄的筆數(shù)是UBound(values,2)+1,傳回字段數(shù)是UBound(value, 1)+1。 

標(biāo)簽:大理 衢州 江蘇 廣元 衡水 蚌埠 萍鄉(xiāng) 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《把RS.GetRows看得更清楚》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    辛集市| 孝感市| 简阳市| 阿瓦提县| 镇赉县| 高雄县| 剑阁县| 馆陶县| 驻马店市| 资溪县| 文山县| 清远市| 准格尔旗| 江华| 抚远县| 惠州市| 吉木萨尔县| 友谊县| 柯坪县| 察隅县| 福安市| 丰都县| 遂昌县| 庆安县| 贞丰县| 出国| 如东县| 通道| 松潘县| 和田县| 呼玛县| 通化市| 长宁县| 平武县| 长沙县| 治县。| 玛纳斯县| 武陟县| 阳江市| 大方县| 山阴县|