ADO Recordset 物件
Recordset 物件
ADO Recordset 物件用於儲存資料庫表中的一組記錄。Recordset 物件由記錄和列(欄位)組成。
在 ADO 中,這個物件是最重要也是最常用的,用於操作資料庫資料。
ProgID
set objRecordset=Server.CreateObject("ADODB.recordset")
當您首次開啟 Recordset 時,當前記錄指標將指向第一條記錄,並且 BOF 和 EOF 屬性為 False。如果沒有記錄,則 BOF 和 EOF 屬性為 True。
Recordset 物件支援兩種型別的更新:
- 即時更新 - 呼叫 Update 方法後,所有更改將立即寫入資料庫。
- 批次更新 - 提供程式將快取多個更改,然後使用 UpdateBatch 方法將它們傳送到資料庫。
在 ADO 中定義了 4 種不同的遊標型別
- 動態遊標 - 允許您檢視其他使用者新增、更改和刪除的記錄。
- 鍵集遊標 - 類似於動態遊標,但不能檢視其他使用者新增的記錄,並且阻止訪問其他使用者已刪除的記錄。其他使用者對資料的更改仍然可見。
- 靜態遊標 - 為您提供記錄集的靜態副本,用於查詢資料或生成報告。其他使用者新增、更改或刪除的記錄將不可見。這是在開啟客戶端 Recordset 物件時唯一允許的遊標型別。
- 向前滾動遊標 - 僅允許您向前滾動 Recordset。其他使用者新增、更改或刪除的記錄將不可見。
可以透過 CursorType 屬性或 Open 方法中的 CursorType 引數來設定遊標型別。
注意:並非所有提供程式都支援 Recordset 物件的所有方法或屬性。
屬性
屬性 | 描述 |
---|---|
AbsolutePage | 設定或返回一個值,該值指定 Recordset 物件中的頁碼 |
AbsolutePosition | 設定或返回一個值,該值指定 Recordset 物件中當前記錄的序號位置 |
ActiveCommand | 返回與 Recordset 關聯的 Command 物件 |
ActiveConnection | 如果連線已關閉,則設定或返回連線的定義;如果連線已開啟,則設定或返回當前的 Connection 物件 |
BOF | 如果當前記錄位置在第一條記錄之前,則返回 True,否則返回 False |
Bookmark | 設定或返回一個書籤。書籤會儲存當前記錄的位置 |
CacheSize | 設定或返回可以快取的記錄數 |
CursorLocation | 設定或返回遊標服務的位置 |
CursorType | 設定或返回 Recordset 物件的游標型別 |
DataMember | 設定或返回 DataSource 屬性引用的物件中要檢索的資料成員的名稱 |
DataSource | 指定一個包含要表示為 Recordset 物件的資料的物件 |
EditMode | 返回當前記錄的編輯狀態 |
EOF | 如果當前記錄位置在最後一條記錄之後,則返回 True,否則返回 False |
濾鏡 | 設定或返回 Recordset 物件中資料的過濾器 |
Index | 設定或返回 Recordset 物件當前索引的名稱 |
LockType | 設定或返回一個值,該值指定在 Recordset 中編輯記錄時使用的鎖定型別 |
MarshalOptions | 設定或返回一個值,該值指定要返回到伺服器的記錄 |
MaxRecords | 設定或返回從查詢返回到 Recordset 物件的記錄的最大數量 |
PageCount | 返回 Recordset 物件中帶有資料的頁數 |
PageSize | 設定或返回 Recordset 物件單頁允許的最大記錄數 |
RecordCount | 返回 Recordset 物件中的記錄數 |
排序 | 設定或返回用於排序 Recordset 的欄位名稱 |
Source(來源) | 設定一個字串值或 Command 物件引用,或返回一個表示 Recordset 物件資料來源的字串值 |
州 | 返回一個描述 Recordset 物件是開啟、關閉、正在連線、正在執行還是正在檢索資料的狀態值 |
Status | 返回當前記錄相對於批次更新或其他批次操作的狀態 |
StayInSync | 設定或返回當父記錄位置更改時,子記錄的引用是否會更改 |
方法
方法 | 描述 |
---|---|
AddNew | 建立一個新記錄 |
取消 | 取消執行 |
CancelBatch | 取消批次更新 |
CancelUpdate | 取消對 Recordset 物件記錄所做的更改 |
Clone | 建立現有 Recordset 的副本 |
Close | 關閉 Recordset |
CompareBookmarks | 比較兩個書籤 |
刪除 | 刪除記錄或一組記錄 |
Find | 在 Recordset 中搜索滿足指定條件的記錄 |
GetRows | 將 Recordset 物件中的多條記錄複製到二維陣列中 |
GetString | 將 Recordset 返回為字串 |
移動 | 移動 Recordset 物件中的記錄指標 |
MoveFirst | 將記錄指標移動到第一條記錄 |
MoveLast | 將記錄指標移動到最後一條記錄 |
MoveNext | 將記錄指標移動到下一條記錄 |
MovePrevious | 將記錄指標移動到上一條記錄 |
NextRecordset | 清除當前 Recordset 物件,並透過迴圈一系列命令返回下一個 Recordset 物件 |
Open | 開啟一個數據庫元素,該元素允許您訪問表中的記錄、查詢的結果或已儲存的 Recordset |
Requery | 透過重新執行建立原始 Recordset 的查詢來更新 Recordset 中的資料 |
Resync | 從原始資料庫重新整理當前 Recordset 中的資料 |
Save | 將 Recordset 物件儲存到檔案或 Stream 物件 |
Seek | 搜尋 Recordset 的索引以查詢與指定值匹配的記錄 |
Supports | 返回一個布林值,該值定義 Recordset 物件是否支援特定型別的功能 |
Update | 將 Recordset 物件中對單條記錄所做的所有更改儲存起來 |
UpdateBatch | 將 Recordset 中的所有更改儲存到資料庫。在批次更新模式下工作時使用 |
活動
注意:您無法使用 VBScript 或 JScript 處理事件(只有 Visual Basic、Visual C++ 和 Visual J++ 語言可以處理事件)。
事件 | 描述 |
---|---|
EndOfRecordset | 當您嘗試移動到最後一條記錄之後的記錄時觸發 |
FetchComplete | 在非同步操作中的所有記錄都已獲取後觸發 |
FetchProgress | 在非同步操作中定期觸發,以說明已獲取了多少條記錄 |
FieldChangeComplete | 在 Field 物件的值更改後觸發 |
MoveComplete | 在 Recordset 中的當前位置更改後觸發 |
RecordChangeComplete | 在記錄更改後觸發 |
RecordsetChangeComplete | 在 Recordset 更改後觸發 |
WillChangeField | 在 Field 物件的值更改之前觸發 |
WillChangeRecord | 在記錄更改之前觸發 |
WillChangeRecordset | 在 Recordset 更改之前觸發 |
WillMove | 在 Recordset 中的當前位置更改之前觸發 |
集合
集合 | 描述 |
---|---|
Fields | 指示 Recordset 物件中的 Field 物件數量 |
屬性 | 包含 Recordset 物件中的所有 Property 物件 |
Fields 集合的屬性
屬性 | 描述 |
---|---|
Count | 返回 fields 集合中的專案數。從零開始。 示例 countfields=rs.Fields.Count |
Item(named_item/number) | 返回 fields 集合中的指定項。 示例 itemfields=rs.Fields.Item(1) |
Properties 集合的屬性
屬性 | 描述 |
---|---|
Count | 返回 properties 集合中的專案數。從零開始。 示例 countprop=rs.Properties.Count |
Item(named_item/number) | 返回 properties 集合中的指定項。 示例 itemprop = rs.Properties.Item(1) |