ADO Recordset 對象
ADO Recordset 對象用於容納一個來自數據庫表的記錄集。一個 Recordset 對象由記錄和列(字段)組成。
在 ADO 中,此對象是最重要且最常用於對數據庫的數據進行操作的對象。
ProgID
set objRecordset=Server.CreateObject("ADODB.recordset")
當您首次打開一個 Recordset 時,當前記錄指針將指向第一個記錄,同時 BOF 和 EOF 屬性為 False。如果沒有記錄,BOF 和 EOF 屬性為 True。
Recordset 對象能夠支持兩種更新類型:
立即更新 - 一旦調用 Update 方法,所有更改被立即寫入數據庫。批更新 - provider 將緩存多個更改,然後使用 UpdateBatch 方法把這些更改傳送到數據庫。
在 ADO,定義了 4 中不同的游標(指針)類型:
•動態游標 - 允許您查看其他用戶所作的添加、更改和刪除
•鍵集游標 - 類似動態游標,不同的是您無法查看有其他用戶所做的添加,並且它會防止您訪問其他用戶已刪除的記錄。其他用戶所做的數據更改仍然是可見的。
•靜態游標 - 提供記錄集的靜態副本,可用來查找數據或生成報告。此外,由其他用戶所做的添加、更改和刪除將是不可見的。當您打開一個客戶端 Recordset 對象時,這是唯一被允許的游標類型。
•僅向前游標 - 只允許在 Recordset 中向前滾動。此外,由其他用戶所做的添加、更改和刪除將是不可見的。
可通過 CursorType 屬性或 Open 方法中的 CursorType 參數來設置游標的類型。
注釋:並非所有的提供者(providers)支持 Recordset 對象的所有方法和屬性。
想了解更多ADO Recordset 對象的朋友可以到這裡查看更多內容。
如果單單是讀取,不涉及更新操作,那就用1,1
如果涉及讀取及更新操作,可以用1,3 或3,2
Recordset對象的Open方法原型:
Open([Source],[ActiveConnection],[CursorType],[LockType],[Options])
CursorType游標類型:
Const adOpenForwardOnly = 0
前向游標,為缺省游標,提供最快的運行性能。用它打開recordset,從對至尾順序取得所有結果。它不支持向後滾動,只允許在結果間單向移動。
Const adOpenKeyset = 1
靜態游標,反映第一次打開游標時表中數據的狀態,游標無法查明底層表中的數據行是否更新過、刪除過或添加了新的數據。不過與只能前移的洲標不同,靜態游標可以在結果間前後滾動。
Const adOpenDynamic = 2
鍵盤驅動的游標,可以查詢表中底層數據行的某些變化,但不是全部。它特別是可以准確反映數據是否更新過。但它不能查明其它用戶是否曾刪除過數據行(刪除掉的數據行在recordset中會留下空洞)。鍵盤驅動的游標支持在結果間前後滾動。
Const adOpenStatic = 3
動態游標,是最豐富的游標類型。游標打開時可以查詢其他用戶對表的任何改動,而且支持滾動。
LockType加鎖類型:
Const adLockReadOnly = 1
缺省的上鎖類型,只讀方式上鎖允許多個用戶同時讀取同樣的數據,但不能改變數據。
Const adLockPessimistic = 2
以悲觀上鎖方式打開數據對象。該方式假定在你編輯記錄時會有其它用戶訪問數據。此時一旦你開始編輯記錄,其它用戶就不能訪問該數據。
Const adLockOptimistic = 3
以樂觀上鎖方式打開數據對象。該方式假定在你編輯記錄時不會有其它用戶訪問數據。在完成改變之前,其它用戶不能訪問該記錄。
Const adLockBatchOptimistic = 4
執行多行批處理更新時使用這種類型
Options參數:
Options參數標明用來打開記錄集的命令字符串的類型。告訴ADO被執行的字符串內容的有關信息有助於高效地執行該命令字符串。
adCMDTable。被執行的字符串包含一個表的名字。
adCMDText。被執行的字符串包含一個命令文本。
adCMDStoredProc。被執行的字符串包含一個存儲過程名。
adCMDUnknown。不指定字符串的內容。(這是缺省值。)
簡單點就是:
RS.OPEN SQL,CONN,A,B
A: ADOPENFORWARDONLY(=0) 只讀,且當前數據記錄只能向下移動
ADOPENSTATIC(=3) 只讀,當前數據記錄可自由移動
ADOPENKEYSET(=1) 可讀寫,當前數據記錄可自由移動
ADOPENDYNAMIC(=2) 可讀寫,當前數據記錄可自由移動,可看到新增記錄
B: ADLOCKREADONLY(=1) 默認值,用來打開只讀記錄
ADLOCKPESSIMISTIC(=2) 悲觀鎖定
ADLOCKOPTIMISTIC(=3) 樂觀鎖定
ADLOCKBATCHOPTIMISTIC(=4) 批次樂觀鎖定