Rs.Open語法如下:rs.Open Source,ActiveConnection,CursorType,LockType Source為sql語句,ActiveConnection為資料庫連線,CursorType是遊標,LockType是資料鎖定類型.
常開發asp但對於細緻的說法,真實不太清楚,這裡簡單的介紹下。
一般情況下
讀取資料都是用rs.open sql,conn,1,1
修改資料:rs.open sql,conn,1,3
刪除資料:直接要conn.execute("delete * from new where id=1")這樣的。
Rs.Open語法如下:rs.Open Source,ActiveConnection,CursorType,LockType
Source為sql語句,ActiveConnection為資料庫連線,CursorType是遊標,LockType是資料鎖定類型.
CursorType
常量說明
adOpenForwardOnly(值為0) (預設值)開啟僅向前類型遊標。
adOpenKeyset(值為1) 開啟鍵集類型遊標。
adOpenDynamic(值為2) 開啟動態類型遊標。
adOpenStatic(值為3) 開啟靜態類型遊標。
LockType
常量說明
adLockReadOnly (值為1) (預設值)唯讀— 無法改變資料。
adLockPessimistic(值為2) 保守式鎖定(逐一) — 提供者完成確保成功編輯記錄所需的工作,通常透過在編輯時立即鎖定資料來源的記錄來完成。
adLockOptimistic(值為3) 開放式鎖定(逐一) — 提供者使用開放式鎖定,只在呼叫Update 方法時才鎖定記錄。
adLockBatchOptimistic(值為4) 開放式批次更新— 用於批次更新模式(與立即更新模式相對)。
CursorType
0 僅向前遊標,只能向前瀏覽記錄,不支援分頁、Recordset、BookMark
1 鍵集遊標,其他使用者對記錄說做的修改將反映到記錄集中,但其他使用者增加或刪除記錄不會反映到記錄集中。支援分頁、Recordset、BookMark
2 動態遊標功能最強,但耗資源也最多。使用者對記錄說做的修改,增加或刪除記錄都會反映到記錄集中。支援全功能瀏覽。
3 靜態遊標,只是資料的一個快照,使用者對記錄說做的修改,增加或刪除記錄都不會反映到記錄集中。支援向前或向後移動
LockType
LockType為記錄集的鎖定類型,其取值為:
1 鎖定類型,預設的,唯讀,不能作任何修改
2 當編輯時立即鎖定記錄,最安全的方式
3 只有在呼叫Update方法時才鎖定記錄集,而先前的其他操作仍可對目前記錄進行變更、插入和刪除等
4 當編輯時記錄不會被鎖定,而更改、插入和刪
rs.open sql,conn,3,2
這兩個是遊標,具體的作用是:
RS.OPEN SQL,CONN,A,B
A:
ADOPENFORWARDONLY(=0)
唯讀,且當前資料記錄只能向下移動
ADOPENKEYSET(=1)
唯讀,目前資料記錄可自由移動
ADOPENDYNAMIC(=2)
可讀寫,目前資料記錄可自由移動
ADOPENSTATIC(=3)
可讀寫,目前資料記錄可自由移動,可看到新增記錄
B:
ADLOCKREADONLY(=1)
缺省鎖定類型,記錄集是唯讀的,不能修改記錄
ADLOCKPESSIMISTIC(=2)
悲觀鎖定,當修改記錄時,資料提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。
ADLOCKOPTIMISTIC(=3)
樂觀鎖定,直到用Update方法提交更新記錄時才鎖定記錄。
ADLOCKBATCHOPTIMISTIC(=4)
批次樂觀鎖定,允許修改多個記錄,只有在呼叫UpdateBatch方法後才鎖定記錄。
當不需要改動任何記錄時,應該使用唯讀的記錄集,這樣提供者不用做任何偵測。
對於一般的使用,樂觀的鎖定可能是最好的選擇,因為記錄只被鎖定一小段時間,
數據在這段時間被更新。這減少了資源的使用。
總結一下:
sql,conn,1,1 代表不允許更新,一般用於查詢操作。
sql,conn,1,3 代表允許更新,一般用於插入,更新和刪除操作。