鎖定資料記錄

2021-03-31 08:56:31 字數 1191 閱讀 2941

鎖定資料記錄ado元件有乙個非常好的屬性locktype,可用於鎖定記錄,這樣當乙個更新開始之前可以去檢查這個屬性,如果還在鎖定狀態,則需要等待,以避免更新衝突.該屬性具體說明如下:

locktype 屬性      

指示編輯過程中對記錄使用的鎖定型別。

設定和返回值

設定或返回以下某個 locktypeenum 的值。

常量 說明

adlockreadonly 預設值,唯讀。無法更改資料。

adlockpessimistic 保守式記錄鎖定(逐條)。提供者執行必要的操作確保成功編輯記錄,通常採用編輯時立即鎖定資料來源的記錄的方式。

adlockoptimistic 開放式記錄鎖定(逐條)。提供者使用開放式鎖定,只在呼叫 update 方法時鎖定記錄。

adlockbatchoptimistic 開放式批更新。用於與立即更新模式相反的批更新模式。

說明開啟 recordset 前設定 locktype 屬性可指定開啟時提供者應該使用的鎖定型別。讀取該屬性可返回在開啟的 recordset 物件上正在使用的鎖定型別。recordset 關閉時 locktype 屬性為讀/寫,開啟時該屬性為唯讀。

提供者可能不支援所有的鎖定型別。如果某提供者不支援所需的 locktype 設定,則將替換為其他型別的鎖定。要確定 recordset 物件可用的實際鎖定功能,請通過 adupdate 和 adupdatebatch 使用 supports 方法。

如果 cursorlocation 屬性被設定為 aduseclient,將不支援 adlockpessimistic 設定。設定不支援的值不會產生錯誤,因為此時將使用支援的最接近的 locktype 的值。

遠端資料服務用法   當在客戶端 (ador) 的 recordset 物件上使用時,locktype 屬性只能設定為 adlockoptimisticbatch。

注:更新資料前最後使用事務:

adoconnection.begintrans;                  // 開始乙個事務

try// 在這裡寫更新資料庫語句.

adoconnection.***mittrans            // 提交乙個事務

except

adoconnection.rollbacktrans;        // 事務失敗則回滾事務,放棄所有更新操作

end;

Listview鎖定資料來源

class lockdatarun implements runnable try catch interruptedexception e static final object key new object static boolean blockdatasource 每次自寫的adapter每...

MySQL鎖定資料庫表

mysql中所有鎖定不會是死鎖的。這通過總是在乙個查詢前立即請求所有必要的鎖定並且總是以同樣的順序鎖定表來管理。對write,mysql使用的鎖定方法原理如下 對read,mysql使用的鎖定方法原理如下 當乙個鎖定被釋放時,鎖定可被寫鎖定佇列中的執行緒得到,然後是讀鎖定佇列中的執行緒。這意味著,如...

關鍵字const鎖定陣列資料

陣列在傳入函式或者是在正常使用的情況下,我們可能不希望陣列的數值改變,但是在程式的某個位置我們還是有可能因為疏忽改變了特定陣列的內容。那麼此時我們就需要一種方式來鎖定陣列保證其不發生改變。我們都知道用const關鍵字可以建立一些常量,使之不能發生改變,那麼陣列也相同,建立const陣列即可 cons...