ADO Recordset 對象

2018-02-08 14:49 更新

ADO Recordset 對象

使用 ADO 時,通過 Recordset 對象可對幾乎所有數(shù)據(jù)進行操作。


實例

GetRows
本例演示如何使用 GetRows 方法。


Recordset 對象

ADO Recordset 對象用于容納一個來自數(shù)據(jù)庫表的記錄集。一個 Recordset 對象由記錄和列(字段)組成。

在 ADO 中,此對象是最重要且最常用于對數(shù)據(jù)庫的數(shù)據(jù)進行操作的對象。

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

當您首次打開一個 Recordset 時,當前記錄指針將指向第一個記錄,同時 BOF 和 EOF 屬性為 False。如果沒有記錄,BOF 和 EOF 屬性為 True。

Recordset 對象能夠支持兩種更新類型:

    立即更新 - 一旦調(diào)用 Update 方法,所有更改被立即寫入數(shù)據(jù)庫。 批更新 - provider 將緩存多個更改,然后使用 UpdateBatch 方法把這些更改傳送到數(shù)據(jù)庫。

在 ADO,定義了 4 中不同的游標(指針)類型:

  • 動態(tài)游標 - 允許您查看其他用戶所作的添加、更改和刪除
  • 鍵集游標 - 類似動態(tài)游標,不同的是您無法查看有其他用戶所做的添加,并且它會防止您訪問其他用戶已刪除的記錄。其他用戶所做的數(shù)據(jù)更改仍然是可見的。
  • 靜態(tài)游標 - 提供記錄集的靜態(tài)副本,可用來查找數(shù)據(jù)或生成報告。此外,由其他用戶所做的添加、更改和刪除將是不可見的。當您打開一個客戶端 Recordset 對象時,這是唯一被允許的游標類型。
  • 僅向前游標 - 只允許在 Recordset 中向前滾動。此外,由其他用戶所做的添加、更改和刪除將是不可見的。

可通過 CursorType 屬性或 Open 方法中的 CursorType 參數(shù)來設置游標的類型。

注釋:并非所有的提供者(providers)支持 Recordset 對象的所有方法和屬性。


屬性

屬性 描述
AbsolutePage 設置或返回一個可指定 Recordset 對象中頁碼的值。
AbsolutePosition 設置或返回一個值,此值可指定 Recordset 對象中當前記錄的順序位置(序號位置)。
ActiveCommand 返回與 Recordset 對象相關聯(lián)的 Command 對象。
ActiveConnection 如果連接被關閉,設置或返回連接的定義,如果連接打開,設置或返回當前的 Connection 對象。
BOF 如果當前的記錄位置在第一條記錄之前,則返回 true,否則返回 fasle。
Bookmark 設置或返回一個書簽。此書簽保存當前記錄的位置。
CacheSize 設置或返回能夠被緩存的記錄的數(shù)目。
CursorLocation 設置或返回游標服務的位置。
CursorType 設置或返回一個 Recordset 對象的游標類型。
DataMember 設置或返回要從 DataSource 屬性所引用的對象中檢索的數(shù)據(jù)成員的名稱。
DataSource 指定一個包含要被表示為 Recordset 對象的數(shù)據(jù)的對象。
EditMode 返回當前記錄的編輯狀態(tài)。
EOF 如果當前記錄的位置在最后的記錄之后,則返回 true,否則返回 fasle。
Filter 返回一個針對 Recordset 對象中數(shù)據(jù)的過濾器。
Index 設置或返回 Recordset 對象的當前索引的名稱。
LockType 設置或返回當編輯 Recordset 中的一條記錄時,可指定鎖定類型的值。
MarshalOptions 設置或返回一個值,此值指定哪些記錄被返回服務器。
MaxRecords 設置或返回從一個查詢返回 Recordset 對象的的最大記錄數(shù)目。
PageCount 返回一個 Recordset 對象中的數(shù)據(jù)頁數(shù)。
PageSize 設置或返回 Recordset 對象的一個單一頁面上所允許的最大記錄數(shù)。
RecordCount 返回一個 Recordset 對象中的記錄數(shù)目。
Sort 設置或返回一個或多個作為 Recordset 排序基準的字段名。
Source 設置一個字符串值,或一個 Command 對象引用,或返回一個字符串值,此值可指示 Recordset 對象的數(shù)據(jù)源。
State 返回一個值,此值可描述是否 Recordset 對象是打開、關閉、正在連接、正在執(zhí)行或正在取回數(shù)據(jù)。
Status 返回有關批更新或其他大量操作的當前記錄的狀態(tài)。
StayInSync 設置或返回當父記錄位置改變時對子記錄的引用是否改變。

方法

方法 描述
AddNew 創(chuàng)建一條新記錄。
Cancel 撤銷一次執(zhí)行。
CancelBatch 撤銷一次批更新。
CancelUpdate 撤銷對 Recordset 對象的一條記錄所做的更改。
Clone 創(chuàng)建一個已有 Recordset 的副本。
Close 關閉一個 Recordset。
CompareBookmarks 比較兩個書簽。
Delete 刪除一條記錄或一組記錄。
Find 搜索一個 Recordset 中滿足指定某個條件的一條記錄。
GetRows 把多條記錄從一個 Recordset 對象中拷貝到一個二維數(shù)組中。
GetString 將 Recordset 作為字符串返回。
Move 在 Recordset 對象中移動記錄指針。
MoveFirst 把記錄指針移動到第一條記錄。
MoveLast 把記錄指針移動到最后一條記錄。
MoveNext 把記錄指針移動到下一條記錄。
MovePrevious 把記錄指針移動到上一條記錄。
NextRecordset 通過執(zhí)行一系列命令清除當前 Recordset 對象并返回下一個 Recordset。
Open 打開一個數(shù)據(jù)庫元素,此元素可提供對表的記錄、查詢的結果或保存的 Recordset 的訪問。
Requery 通過重新執(zhí)行對象所基于的查詢來更新 Recordset 對象中的數(shù)據(jù)。
Resync 從原始數(shù)據(jù)庫刷新當前 Recordset 中的數(shù)據(jù)。
Save 把 Recordset 對象保存到 file 或 Stream 對象中。
Seek 搜索 Recordset 的索引以快速定位與指定的值相匹配的行,并使其成為當前行。
Supports 返回一個布爾值,此值可定義 Recordset 對象是否支持特定類型的功能。
Update 保存所有對 Recordset 對象中的一條單一記錄所做的更改。
UpdateBatch 把所有 Recordset 中的更改存入數(shù)據(jù)庫。請在批更新模式中使用。

事件

注意: 你不能使用 VBScript 或者 JScript 處理(只允許 Visual Basic, Visual C++, 和 Visual J++ 語言處理事件).

事件 描述
EndOfRecordset 當試圖移動到超過 Recordset 結尾的行時被觸發(fā)。
FetchComplete 當異步操作中的所有記錄均被讀取后被觸發(fā)。
FetchProgress 在異步操作期間被定期地觸發(fā),報告已讀取多少記錄。
FieldChangeComplete Field 對象的值更改被觸發(fā)。
MoveComplete Recordset 中的當前位置更改后被觸發(fā)。
RecordChangeComplete 一條記錄更改之后被觸發(fā)。
RecordsetChangeComplete 在 Recordset 更改之后被觸發(fā)。
WillChangeField 在 Field 對象的值更改之前被觸發(fā)
WillChangeRecord 在一條記錄更改之前被觸發(fā)。
WillChangeRecordset 在 Recordset 更改之前被觸發(fā)。
WillMove 在 Recordset 中的當前位置更改之前被觸發(fā)。

集合

集合 描述
Fields 指示在此 Recordset 對象中 Field 對象的數(shù)目。
Properties 包含所有 Recordset 對象中的 Property 對象。

Fields 集合的屬性

屬性 描述
Count

返回 fields 集合中項目的數(shù)目。以 0 起始。

例子:

countfields = rs.Fields.Count
Item(named_item/number)

返回 fields 集合中的某個指定的項目。

例子:

itemfields = rs.Fields.Item(1)
或者	
itemfields = rs.Fields.Item("Name")

Properties 集合的屬性

屬性 描述
Count

返回 properties 集合中項目的數(shù)目。以 0 起始。

例子:

countprop = rs.Properties.Count
Item(named_item/number)

返回 properties 集合中某個指定的項目。

例子:

itemprop = rs.Properties.Item(1)
或者
itemprop = rs.Properties.Item("Name")

以上就是與 ADO Recordset 對象相關的內(nèi)容介紹了,在接下來的一個小節(jié)中,我們將講解 ADO Stream 對象!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號