讀取資料都是用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 代表允許更新,一般用於插入,更新和刪除操作。