天天看點

關于SQLServer的遊标類型、鎖定類型

遊标類型、鎖定類型

adOpenStatic := 3

adLockOptimistic := 3

首先定義兩個常量——adOpenStatic 和 adLockOptimistic,設定它們的值為 3。adOpenStatic 用來設定記錄集的遊标類型,目前隻需要知道它決定了我們可以如何在記錄集中移動以及記錄集是否響應資料庫的實時更新(即假設當您從資料庫中擷取資訊時别人添加新的記錄到資料庫中,那個記錄是否動态顯示到您的記錄集中或者需要重新查詢才能擷取更新的資訊)。adOpenStatic 遊标能讓您在記錄集中前後移動,但不會自動擷取資料庫中的更新。這樣有助于減少處理時間和緩解網絡通信,因為一旦擷取了記錄集腳本就不需要持續監視資料庫的更新。

下表中列出了遊标類型常量、相應的值及說明:

僅向前遊标 adOpenForwardOnly 0 僅允許在記錄集中向前移動。無法查找個别記錄、無法傳回記錄集中的記錄數,且無法檢視到記錄集中所有的變化。

鍵集遊标 adOpenKeyset 1 允許在記錄集中前後移動、支援使用 Find 查找記錄、可以傳回記錄數。能檢視到現有記錄的動态變化,但無法看到新添加的記錄。

動态遊标 adOpenDynamic 2 允許在記錄集中前後移動、支援使用 Find 查找記錄、可以傳回記錄數,并且能檢視到記錄集中所有的變化。

靜态遊标 adOpenStatic 3 允許在記錄集中前後移動、支援使用 Find 查找記錄、可以傳回記錄數,但無法檢視到記錄集中所有的變化。當打開用戶端記錄集時,隻允許使用這種遊标類型。

注:并非所有的提供者都支援記錄集的所有方法和屬性。對于個人檔案或其他不需要關心資料更新的情況,一般使用靜态遊标。

另一個常量 adLockOptimistic 用來設定記錄的鎖定類型。鎖定類型決定了資料庫是否及如何鎖定目前檢視的記錄,以及提供修改這個記錄的獨占權利。下表中列出了鎖定類型常量、相應的值及說明:

Read Only adLockReadOnly 1 不鎖定記錄集來釋放系統資源,不過這也導緻記錄集是隻讀的。

Pessimistic adLockPessimistic 2 從開始編輯時鎖定記錄,一直到調用 Update 方法後解鎖。

Optimistic adLockOptimistic 3 僅在調用 Update 方法時臨時鎖定記錄。

Batch adLockOptimisticBatch 4 用于批次更新。