經(jīng)常開(kāi)發(fā)asp但對(duì)于細(xì)致的說(shuō)法,真實(shí)不太清楚,這里簡(jiǎn)單的介紹下。
一般情況下
讀取數(shù)據(jù)都是用rs.open sql,conn,1,1
修改數(shù)據(jù):rs.open sql,conn,1,3
刪除數(shù)據(jù):直接要conn.execute("delete * from new where id=1")這樣的。
Rs.Open語(yǔ)法如下:rs.Open Source,ActiveConnection,CursorType,LockType
Source為sql語(yǔ)句,ActiveConnection為數(shù)據(jù)庫(kù)連接,CursorType是游標(biāo),LockType是數(shù)據(jù)鎖定類型.
CursorType
常量 說(shuō)明
adOpenForwardOnly(值為0) (默認(rèn)值)打開(kāi)僅向前類型游標(biāo)。
adOpenKeyset(值為1) 打開(kāi)鍵集類型游標(biāo)。
adOpenDynamic(值為2) 打開(kāi)動(dòng)態(tài)類型游標(biāo)。
adOpenStatic(值為3) 打開(kāi)靜態(tài)類型游標(biāo)。
LockType
常量 說(shuō)明
adLockReadOnly (值為1) (默認(rèn)值)只讀 — 不能改變數(shù)據(jù)。
adLockPessimistic(值為2) 保守式鎖定(逐個(gè)) — 提供者完成確保成功編輯記錄所需的工作,通常通過(guò)在編輯時(shí)立即鎖定數(shù)據(jù)源的記錄來(lái)完成。
adLockOptimistic(值為3) 開(kāi)放式鎖定(逐個(gè)) — 提供者使用開(kāi)放式鎖定,只在調(diào)用 Update 方法時(shí)才鎖定記錄。
adLockBatchOptimistic(值為4) 開(kāi)放式批更新 — 用于批更新模式(與立即更新模式相對(duì))。
CursorType
0 僅向前游標(biāo),只能向前瀏覽記錄,不支持分頁(yè)、Recordset、BookMark
1 鍵集游標(biāo),其他用戶對(duì)記錄說(shuō)做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會(huì)反映到記錄集中。支持分頁(yè)、Recordset、BookMark
2 動(dòng)態(tài)游標(biāo)功能最強(qiáng),但耗資源也最多。用戶對(duì)記錄說(shuō)做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽。
3 靜態(tài)游標(biāo),只是數(shù)據(jù)的一個(gè)快照,用戶對(duì)記錄說(shuō)做的修改,增加或刪除記錄都不會(huì)反映到記錄集中。支持向前或向后移動(dòng)
LockType
LockType為記錄集的鎖定類型,其取值為:
1 鎖定類型,默認(rèn)的,只讀,不能作任何修改
2 當(dāng)編輯時(shí)立即鎖定記錄,最安全的方式
3 只有在調(diào)用Update方法時(shí)才鎖定記錄集,而在此前的其他操作仍可對(duì)當(dāng)前記錄進(jìn)行更改、插入和刪除等
4 當(dāng)編輯時(shí)記錄不會(huì)被鎖定,而更改、插入和刪
rs.open sql,conn,3,2
這兩個(gè)是游標(biāo),具體的作用是:
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)
可讀寫(xiě),當(dāng)前數(shù)據(jù)記錄可自由移動(dòng)
ADOPENSTATIC(=3)
可讀寫(xiě),當(dāng)前數(shù)據(jù)記錄可自由移動(dòng),可看到新增記錄
B:
ADLOCKREADONLY(=1)
缺省鎖定類型,記錄集是只讀的,不能修改記錄
ADLOCKPESSIMISTIC(=2)
悲觀鎖定,當(dāng)修改記錄時(shí),數(shù)據(jù)提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開(kāi)始,則立即鎖住記錄。
ADLOCKOPTIMISTIC(=3)
樂(lè)觀鎖定 ,直到用Update方法提交更新記錄時(shí)才鎖定記錄。
ADLOCKBATCHOPTIMISTIC(=4)
批量樂(lè)觀鎖定,允許修改多個(gè)記錄,只有調(diào)用UpdateBatch方法后才鎖定記錄。
當(dāng)不需要改動(dòng)任何記錄時(shí),應(yīng)該使用只讀的記錄集,這樣提供者不用做任何檢測(cè)。
對(duì)于一般的使用,樂(lè)觀的鎖定可能是最好的選擇,因?yàn)橛涗浿槐绘i定一小段時(shí)間,
數(shù)據(jù)在這段時(shí)間被更新。這減少了資源的使用。
總結(jié)一下:
sql,conn,1,1 代表不允許更新,一般用于查詢操作。
sql,conn,1,3 代表允許更新,一般用于插入,更新和刪除操作。
新聞熱點(diǎn)
疑難解答
圖片精選