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