程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 鎖定數據記錄

鎖定數據記錄

編輯:Delphi
鎖定數據記錄

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.CommitTrans            // 提交一個事務
      except
         ADOConnection.RollbackTrans;        // 事務失敗則回滾事務,放棄所有更新操作
     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved