使用游標(biāo)類型執(zhí)行的速度
adOpenForwardOnly > adOpenDynamic > adOpenKeyset > adOpenStatic
游標(biāo)類型有以下四種類型:
1、 AdOpenForwardOnly (默認(rèn)值)一次只能向前移動(dòng)一行。
2、 AdOpenKeyset 打開鍵集類型游標(biāo)。
3、 AdOpenDynamic 打開動(dòng)態(tài)類型游標(biāo)
4、 AdOpenStatic 打開靜態(tài)類型游標(biāo)。
AdOpenForwardOnly和AdOpenStatic這兩種游標(biāo)使得記錄集只讀,它表示創(chuàng)建數(shù)據(jù)的一個(gè)快照。后者比前者靈活,因?yàn)樗梢栽试S任意方向移動(dòng)。
AdOpenKeyset允許任意移動(dòng),并且允許更改記錄集。其他用戶對(duì)記錄集的添加和刪除,這個(gè)游標(biāo)反映不出來。但它能反映出其他用戶對(duì)記錄集的更改。
AdOpenDynamic允許所有操作,其他用戶對(duì)記錄集的添加、刪除、更改在此記錄集中
都是可見的。
LockType= adLockOptimistic
Options 省略
大家需要注意的是:當(dāng)使用AdOpenKeyset時(shí),要求記錄集中每條記錄都有唯一的關(guān)鍵字。否則,執(zhí)行的結(jié)果就不是您所要的所有記錄了。
清楚了游標(biāo)類型,再來看看鎖類型LockType
AdLockReadOnly (默認(rèn)值)只讀 --- 不能改變數(shù)據(jù)。
AdLockPessimistic 悲觀鎖(逐個(gè))--- 為確保成功完成編輯記錄所需的工作,
在編輯時(shí)立即鎖定數(shù)據(jù)源的記錄。
AdLockOptimistic 樂觀鎖(逐個(gè))--- 只在調(diào)用Update 方法時(shí)才鎖定記錄。
AdLockBatchOptimistic 樂觀批更新---用于批更新模式(與立即更新模式相對(duì))。
對(duì)于悲觀鎖、樂觀鎖的解釋:
樂觀的鎖策略是把記錄必須加鎖的時(shí)間減到最短,當(dāng)用戶對(duì)記錄的內(nèi)容進(jìn)行編輯時(shí),樂觀鎖不起作用,其他用戶可以訪問和編輯數(shù)據(jù),但當(dāng)其中的一個(gè)用戶想要更新數(shù)據(jù)時(shí),記錄就會(huì)加上鎖;
悲觀的鎖策略是當(dāng)?shù)谝粋€(gè)用戶打開記錄進(jìn)行編輯的時(shí)候,記錄就會(huì)加鎖,直到使用記錄的用戶解除鎖時(shí)鎖才不起作用。一旦悲觀鎖起作用,其他的用戶就看不到數(shù)據(jù),直到該鎖被解除;
對(duì)于AdLockBatchOptimistic,只能與AdOpenKeyset游標(biāo)一起使用。它在更新時(shí)不會(huì)立即把更新過的記錄寫入到數(shù)據(jù)源中,而是把對(duì)許多條記錄所做的改動(dòng)先放在客戶計(jì)算機(jī)中,然后把更新過的記錄作為一批寫入數(shù)據(jù)源