*==========================================================================*
rs.open sql,conn,1,1全接觸(已修正)
*==========================================================================*
經(jīng)常會(huì)在連接DB的時(shí)候用到
RS.OPEN SQL,CONN,A,B
A:
ADOPENFORWARDONLY(=0)
只讀,且當(dāng)前數(shù)據(jù)記錄只能向下移動(dòng)
ADOPENKEYSET(=1)
只讀,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng)
ADOPENDYNAMIC(=2)
可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng)
ADOPENSTATIC(=3)
可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動(dòng),可看到新增記錄
B:
ADLOCKREADONLY(=1)
缺省鎖定類型,記錄集是只讀的,不能修改記錄
ADLOCKPESSIMISTIC(=2)
悲觀鎖定,當(dāng)修改記錄時(shí),數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。
ADLOCKOPTIMISTIC(=3)
樂觀鎖定 ,直到用Update方法提交更新記錄時(shí)才鎖定記錄。
ADLOCKBATCHOPTIMISTIC(=4)
批量樂觀鎖定,允許修改多個(gè)記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。
當(dāng)不需要改動(dòng)任何記錄時(shí),應(yīng)該使用只讀的記錄集,這樣提供者不用做任何檢測。
對于一般的使用,樂觀的鎖定可能是最好的選擇,因?yàn)橛涗浿槐绘i定一小段時(shí)間,
數(shù)據(jù)在這段時(shí)間被更新。這減少了資源的使用。
*==========================================================================*
詳解rs.open sql,conn,1,1后的數(shù)字參數(shù)的含義
*==========================================================================*
RS.OPEN SQL,CONN,A,B
參數(shù)A為設(shè)定游標(biāo)的類型,其取值為:
0 僅向前游標(biāo),只能向前瀏覽記錄,不支持分頁、Recordset、BookMark
1 鍵集游標(biāo),其他用戶對記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會(huì)反映到記錄集中。支持分頁、Recordset、BookMark
2 動(dòng)態(tài)游標(biāo)功能最強(qiáng),但耗資源也最多。用戶對記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽。
3 靜態(tài)游標(biāo),只是數(shù)據(jù)的一個(gè)快照,用戶對記錄說做的修改,增加或刪除記錄都不會(huì)反映到記錄集中。支持向前或向后移動(dòng)
參數(shù)B為記錄集的鎖定類型,其取值為:
1 鎖定類型,默認(rèn)的,只讀,不能作任何修改
2 當(dāng)編輯時(shí)立即鎖定記錄,最安全的方式
3 只有在調(diào)用Update方法時(shí)才鎖定記錄集,而在此前的其他操作仍可對當(dāng)前記錄進(jìn)行更改、插入和刪除等
4 當(dāng)編輯時(shí)記錄不會(huì)被鎖定,而更改、插入和刪除是在批處理方式下完成的
打開數(shù)據(jù)記錄集方法其實(shí)不止一種,但是我們用的最多的就是
rs.open sql,1,1的方法,可是后面的數(shù)字參數(shù)很多人不解其意,下面我們來介紹一下。
其實(shí)open方法后面有多個(gè)參數(shù)
CursorType LockType CommandType
比如 rs.open sql,1,1
也可以寫成
rs.cursorType = 1
rs.LockType = 1
rs.open sql
其中CursorType代表從一個(gè)表或者一個(gè)SQL查詢結(jié)果返回的記錄。
這個(gè)參數(shù)有四個(gè)值分別是:
adOpenForwardOnly 表示只允許在記錄集內(nèi)的記錄間往前移動(dòng)。這個(gè)是缺省值。
adOpenKeyset 反映由其它用戶所做的對記錄的改變或者刪除動(dòng)作,但并不反映由其它用戶做作的添加新記錄的動(dòng)作。
adOpenDynamic 反映由其它用戶所做的對記錄的改變或者刪除動(dòng)作,包括添加的新記錄
adOpenStatic 不反映其它用戶對記錄所做的修改,添加,刪除動(dòng)作。
這四個(gè)值VBSCRIPT預(yù)定義位
adOpenForwardOnly = 0
adOpenKeyset = 1
adOpenDynamic = 2
adOpenStatic = 3
lockType 表示當(dāng)打開記錄集時(shí),數(shù)據(jù)提供者用于鎖定數(shù)據(jù)庫的類型:
adLockReadOnly 數(shù)據(jù)不能改變,這是缺省值!
adLockPessimistic 數(shù)據(jù)提供者在開始編輯數(shù)據(jù)的時(shí)候鎖定記錄
adLockOptimistic 僅當(dāng)調(diào)用update方法時(shí),數(shù)據(jù)提供者鎖定記錄
adLockBatchOptimistic 用于批處理修改
他們的常量值定義分別是:
adLockReadOnly = 1
adLockPessimistic = 2
adLockOptimistic = 3
adLockBatchOptimistic = 4
CommandType這個(gè)參數(shù)由于很少用到,這里就不講了。