乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Recordset記錄集對(duì)象的屬性和方法(一)[Access軟件網(wǎng)]

       昵稱2548375 2018-07-21

      時(shí) 間:2012-07-18 08:21:27
      作 者:宏鵬(轉(zhuǎn)載)   ID:21115  城市:上海
       
       

      Recordset對(duì)象的作用是由數(shù)據(jù)庫(kù)返回記錄集。根據(jù)查詢結(jié)果返回一個(gè)包含所查詢數(shù)據(jù)的記錄集,然后顯示在頁(yè)面上。因?yàn)閯h除、更新、添加操作不需要返回記錄集,因此可以直接使用連接對(duì)象或是命令對(duì)象的Exexut方法,但是利用記錄集對(duì)象有時(shí)會(huì)更簡(jiǎn)單,此外,通過記錄集對(duì)象能夠?qū)崿F(xiàn)比較復(fù)雜的數(shù)據(jù)庫(kù)管理任務(wù),比如要采用分頁(yè)顯示記錄就必須使用記錄集對(duì)象。
      Recordset對(duì)象可以用來代表表中的記錄,可以把記錄集看成是一張?zhí)摂M的表格,包含一條或多條記錄(行),每條記錄包含一個(gè)或多個(gè)字段,但任何時(shí)候只有一條記錄為當(dāng)前記錄。
      可以在非顯式建立連接對(duì)象的情況下,直接打開一個(gè)帶有查詢的記錄集,或是對(duì)命令對(duì)象的查詢返回一個(gè)記錄集。ADO提供這種靈活性,可以用最簡(jiǎn)單的方式指明一個(gè)字符串來說明連接方式,從而得到數(shù)據(jù)庫(kù)的查詢結(jié)果,ADO會(huì)自動(dòng)創(chuàng)建所需要的連接對(duì)象。當(dāng)然也可以顯式創(chuàng)建連接對(duì)象和命令對(duì)象,這樣可以獲得更多的靈活性,實(shí)現(xiàn)更為強(qiáng)大的功能。
      一、 建立Recordset對(duì)象
      創(chuàng)建記錄集的方法主要有兩種??梢韵冉⑦B接對(duì)象,再創(chuàng)建記錄集對(duì)象;也可以在非顯式建立連接對(duì)象的情況下,創(chuàng)建記錄集對(duì)象。
      第一種,先建立連接對(duì)象,再創(chuàng)建記錄集對(duì)象,用法見下面的范例。
      范例6-23:先建立連接對(duì)象,再創(chuàng)建記錄集對(duì)象
      <%
      Set db=Server.CreateObject("ADODB.Recordset") ' 先建立連接對(duì)象
      db.Open"zbsdbbszb"
      Set rs=db.Execute(Select * from article) ' 建立記錄集對(duì)象rs
      %>
      注意:為了說明問題的方便,給記錄集對(duì)象取名為rs,本書下面的實(shí)例中記錄集對(duì)象名均為rs。
      第二種,在非顯式建立連接對(duì)象的情況下,用Server對(duì)象的CreatObject方法建立并打開記錄集對(duì)象,語法如下:
      Set rs=Server.CreateObject("ADODB.Recordset")
      rs.Open參數(shù)
      Open方法的參數(shù)見表6-16。
      6-16 Open方法的參數(shù)
      參數(shù)
      說明
      Source
      數(shù)據(jù)庫(kù)查詢信息
      ActiveConnection
      數(shù)據(jù)庫(kù)連接信息
      CursorType
      記錄集中的指針類型,可選,見表6-17
      LockType
      鎖定類型,可選,見表6-18
      Options
      數(shù)據(jù)庫(kù)查詢信息類型,可選,見表6-19
      CursorType參數(shù)值表6-17
      6-17 CursorType參數(shù)值
      參數(shù)
      說明
      AdOpenForwardOnly
      0
      向前指針,默認(rèn)值。只能用MoveNext方法或GetRows方法向前單向移動(dòng)指針,所耗系統(tǒng)資源最少,執(zhí)行速度也最快,但很多屬性和方法將不能用
      AdOpenKeyset
      1
      鍵盤指針,記錄集中可以前后移動(dòng)。某一用戶修改數(shù)據(jù)后,其他用戶可以立即顯示,但禁止查看其他用戶添加和刪除的記錄
      AdOpenDynamic
      2
      動(dòng)態(tài)指針,記錄集中可以前后移動(dòng)。所有修改會(huì)立即在其他客戶端顯示,功能強(qiáng)大,但所耗系統(tǒng)資源也多
      AdOpenStatic
      3
      靜態(tài)指針,記錄集中可以前后移動(dòng)。所有修改不會(huì)在其他客戶端顯示
      說明:
      關(guān)于指針(又稱游標(biāo))。所謂記錄集,如同一個(gè)電子表格,包含所獲取的若干記錄,每條記錄又包含若干字段。如果記錄不為空,打開記錄集后,指針指向第一條記錄??梢酝ㄟ^移動(dòng)指針在記錄集中漫游,指針?biāo)赶虻挠涗洖楫?dāng)前記錄,當(dāng)前記錄只能有一條。
      在默認(rèn)情況下,當(dāng)打開記錄集,為向前指針,只能用MoveNext方法向前單向移動(dòng)指針,其他操作不受支持。如果需要編輯、添加和刪除記錄,想使用可前后移動(dòng)的指針,并且需要看到其他用戶的對(duì)數(shù)據(jù)庫(kù)的修改,就需要使用其他類型的指針。
      LockType
      參數(shù)值表6-18
      6-18 LockType參數(shù)值
      參數(shù)
      說明
      AdLockReadOnly
      1
      只讀,默認(rèn)值,適用于僅瀏覽數(shù)據(jù)
      AdLockPessimistic
      2
      只能同時(shí)被一個(gè)用戶所修改,修改時(shí)鎖定,完畢解鎖
      AdLockOptimistic
      3
      可以同時(shí)被多個(gè)用戶所修改,直到用update方法更新記錄才鎖定
      AdLockBatchOptimistic
      4
      數(shù)據(jù)可以被修改,且不鎖定其他用戶,指定數(shù)據(jù)成批更新
      說明:
      鎖定目的是確保數(shù)據(jù)的完整性,以防止更改被覆蓋。
      當(dāng)不需要修改記錄,應(yīng)該使用默認(rèn)的只讀記錄集,這樣執(zhí)行速度快,消耗系統(tǒng)資源少;如果是需要修改記錄,一般情況下,選擇取值2,記錄只鎖定一下,即可保護(hù)更改操作,也不消耗過多的系統(tǒng)資源。
      Options
      參數(shù)值表6-19
      6-19 Options參數(shù)值
      參數(shù)
      說明
      AdCmdUnkown
      -1
      表示CommandText參數(shù)類型無法確定,默認(rèn)值
      AdCmdText
      1
      表示CommandText參數(shù)是命令類型
      AdCmdTable
      2
      表示CommandText參數(shù)是表名稱
      AdCmdStoreProc
      3
      表示CommandText參數(shù)是存儲(chǔ)過程名稱
      范例6-24:建立記錄集對(duì)象
      <%
      Set rs=Server.CreateObject("ADODB. Recordset")
      rs.Open" Select * from article","dsn=zbsdbbszb" '
      Open方法中給出數(shù)據(jù)源
      %>
      說明:
      非顯式創(chuàng)建連接對(duì)象和命令對(duì)象。
      ▲ Select * from article
      這個(gè)查詢字符串定義后,記錄集對(duì)象會(huì)自動(dòng)把它轉(zhuǎn)換到一個(gè)命令對(duì)象上。
      ▲ dsn=zbsdbbszb
      這是創(chuàng)建連接對(duì)象的連接字符串。
      、Recordset記錄集對(duì)象的屬性
      Recordset
      記錄集對(duì)象常用屬性見表6-20
      6-20 Recordset記錄集對(duì)象常用屬性見表
      屬性
      說明
      Source
      指示記錄集對(duì)象中數(shù)據(jù)的來源(命令對(duì)象名或SQL語句或表名)
      ActiveConnection
      連接對(duì)象名或包含數(shù)據(jù)庫(kù)的連接信息的字符串
      CursorType
      記錄集中的指針類型,可選,見表6-16
      LockType
      鎖定類型,可選,見表6-17
      MaxRecors
      控制從服務(wù)器獲取的記錄集的最大記錄數(shù)
      CursorLocation
      控制數(shù)據(jù)處理是在客戶端還是在服務(wù)器端
      Filter
      控制要顯示的內(nèi)容
      Bof
      記錄集的開頭
      Eof
      記錄集的結(jié)尾
      RecordCount
      記錄集總數(shù)
      PageSize
      分頁(yè)顯示時(shí)每一頁(yè)的記錄數(shù)
      PageCount
      分頁(yè)顯示時(shí)數(shù)據(jù)頁(yè)的總頁(yè)數(shù)
      AbsolutePage
      當(dāng)前指針?biāo)诘臄?shù)據(jù)頁(yè)
      AbsolutePosition
      當(dāng)前指針?biāo)诘挠涗浶?/span>
      Recordset記錄集對(duì)象常用屬性具體說明如下。
      1
      Source
      用于設(shè)置數(shù)據(jù)庫(kù)的查詢信息,查詢信息可以是命令對(duì)象名或SQL語句或表名,語法如下:
      rs.Source=
      查詢信息
      2
      ActiveConnection
      用于設(shè)置數(shù)據(jù)庫(kù)的連接信息,連接信息可以是連接對(duì)象名或包含數(shù)據(jù)庫(kù)的連接信息的字符串,語法如下:
      rs.ActiveConnection=
      連接信息
      3
      CursorType
      用于設(shè)置記錄集指針類型,取值參見表6-17,語法如下:
      rs.CursorType=

      默認(rèn)為0,即指針只能前移。如果要讓指針自由移動(dòng),一般設(shè)為鍵盤指針1。
      4
      LockType
      用于設(shè)置記錄集的鎖定類型。取值參見表6-18,語法如下:
      rs.LockType=

      默認(rèn)為1,只讀屬性。如果要利用記錄集對(duì)象進(jìn)行添加、刪除、更新等操作,只能由一個(gè)用戶修改,一般需要設(shè)置其屬性為2。
      5
      MaxRecors
      用于設(shè)定從服務(wù)器上得到的最大記錄數(shù),語法如下:
      rs.MaxRecors=
      最大記錄數(shù)
      通常這種方法不常用,而是使用SQL語句來指定所得到的最大記錄數(shù),”Select Top 整數(shù)…”。
      6
      CursorLocation
      用于設(shè)置數(shù)據(jù)處理是在客戶端還是在服務(wù)器端。取值參見表6-21,語法如下:
      rs.CursorLocation =
      6-21 CursorLocation參數(shù)值
      參數(shù)
      說明
      AdUseClient
      1
      客戶端處理
      AdUseServer
      2
      服務(wù)器端處理
      AdUseClientBatch
      3
      動(dòng)態(tài)處理,在客戶端處理,處理時(shí)連接切斷,處理完畢重新連接
      有的時(shí)候,為了減輕服務(wù)器的工作負(fù)擔(dān),可以根據(jù)情況的需要,設(shè)置在客戶端處理。
      7
      Filter
      用于設(shè)置要顯示的內(nèi)容。取值參見表6-22,語法如下:
      rs.Filter =
      6-22 Filter參數(shù)值
      參數(shù)
      說明
      AdFilterNone
      0
      顯示所有數(shù)據(jù)
      AdFilterpendRecords
      1
      只顯示沒有修改過的數(shù)據(jù)
      AdFilterAffectedRecords
      2
      只顯示最近修改過的數(shù)據(jù)
      AdFilterFetchedRecords
      3
      只顯示暫存于客戶端緩存中的數(shù)據(jù)
      8BOF
      用于判斷當(dāng)前記錄指針是否在記錄集的開頭,如在開頭,返回True,否則返回Falsh。如果記錄集為空,也返回True
      9
      EOF
      用于判斷當(dāng)前記錄指針是否在記錄集的結(jié)尾,如在結(jié)尾,返回True,否則返回Flash。如果記錄集為空,也返回True
      記錄集有兩個(gè)特殊位置:BOF EOF。BOF表示記錄集的開頭,位于第一條記錄之前;EOF表示記錄集結(jié)尾,位于最后一條記錄之后。BOF True,當(dāng)前指針指到 RecordSet 的第一條記錄; EOF True,當(dāng)前指標(biāo)指到 RecordSet 的最后一條記錄。如果記錄集不為空,指針可以在BOF、所有記錄和EOF移動(dòng)。如果記錄集為空,此時(shí)指針同時(shí)指向BOF EOF,它們的值均為True。
      具體判斷如下:若當(dāng)前記錄的位置是在一個(gè) Recordset 對(duì)象第一行記錄之前時(shí), BOF 屬性返回 True,反之則返回 False。;若當(dāng)前記錄的位置是在一個(gè) Recordset 對(duì)象最后一行記錄之后時(shí),EOF 屬性返回 True,反之則返回 False;BOF EOF 都為 False,表示指標(biāo)位于 RecordSet 的當(dāng)中;BOF EOF 都為 True,在 RecordSet 里沒有任何記錄。 
      從以上可知,通過檢驗(yàn) BOF EOF 屬性,可以得知當(dāng)前指針?biāo)赶虻?/span> RecordSet 的位置,使用 BOF EOF 屬性,可以得知一個(gè) Recordset 對(duì)象是否包含有記錄或者得知移動(dòng)記錄行是否已經(jīng)超出該 Recordset 對(duì)象的范圍。
      判斷記集錄是否為空的代碼如下:
      < %
      if not rs.bof and rs.eof then '
      如果不是開頭,也不是結(jié)尾,則執(zhí)行

      End if
      %>
      循環(huán)輸出記錄集記錄的代碼如下:
      < %
      Do while not rs.eof '
      如果沒有到達(dá)記錄集未尾,則循環(huán)輸出下面的記錄

      Rs.MoveNext
      Loop
      %>
      10
      RecordCount
      用于返回記錄集中的記錄總數(shù)。我們常用 RecordCount 屬性來找出一個(gè) Recordset 對(duì)象包括多少條記錄。例如: 
      < % Rsponse.Write rs.RecordCount %>
      要注意的是,使用RecordCount必須設(shè)置指針類型為鍵盤指針1或是靜態(tài)指針3。
      11
      PageCount
      用于設(shè)置分頁(yè)顯示時(shí)數(shù)據(jù)頁(yè)的總數(shù)。使用PageCount 屬性,決定 Recordset 對(duì)象包括多少頁(yè)的數(shù)據(jù)。這里的頁(yè)是指數(shù)據(jù)記錄的集合,大小等于 PageSize 屬性的設(shè)定,即使最后一頁(yè)的記錄數(shù)比 PageSize 的值少,最后一頁(yè)也算是 PageCount 的一頁(yè)。
      12
      PageSize 屬性 
      用于設(shè)置分頁(yè)時(shí)每一頁(yè)所顯示的記錄數(shù)。PageSize 屬性是決定 ADO 存取數(shù)據(jù)庫(kù)時(shí)如何分頁(yè)顯示的關(guān)鍵,使用它就可以決定多少記錄組成一個(gè)邏輯上的“1頁(yè)?! ?/span> 
      1011、12條屬性通常是用于分頁(yè)顯示,具體運(yùn)用見下面的范例。
      13
      AbsolutePage
      用于設(shè)置當(dāng)前指針位于哪一頁(yè)。語法如下:
      rs.AbsolutePage =
      整數(shù)值
      14
      AbsolutePosition
      用于設(shè)置當(dāng)前指針?biāo)诘挠涗浶?。語法如下:
      rs.AbsolutePosition =
      整數(shù)值
      后面的這些屬性使用時(shí),一般需要設(shè)置指針類型為鍵盤指針1。 

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多