共用方式為


資料錄集:鎖定資料錄 (ODBC)

本主題適用於 MFC ODBC 類別。

本主題將說明:

當您使用記錄集來更新數據源上的記錄時,您的應用程式可以鎖定記錄,讓其他使用者無法同時更新記錄。 除非系統可以保證兩位使用者無法同時更新記錄,否則兩位使用者同時更新的記錄狀態為未定義。

注意

本主題適用於衍生自 CRecordset 的物件,其中尚未實作大量資料列擷取。 如果您已實作大量數據列擷取,則部分資訊不適用。 例如,您無法呼叫 EditUpdate 成員函式。 如需大量數據列擷取的詳細資訊,請參閱 記錄集:大量擷取記錄 (ODBC)

記錄鎖定模式

資料庫類別提供兩 種記錄鎖定模式

  • 開放式鎖定 (預設值)

  • 悲觀鎖定

更新記錄會在三個步驟中發生:

  1. 您可以呼叫 Edit 成員函式來開始作業。

  2. 您可以變更目前記錄的適當欄位。

  3. 您可以呼叫 Update 成員函式來結束作業,並通常會認可更新

開放式鎖定只會在呼叫期間鎖定數據源上的 Update 記錄。 如果您在多用戶環境中使用開放式鎖定,應用程式應該處理 Update 失敗狀況。 悲觀鎖定會在您呼叫時鎖定記錄,而且在您呼叫 Edit Update 之前不會釋放記錄(失敗會透過 CDBException 機制指出,而不是由 傳回 Update的 FALSE 值表示)。 對其他使用者來說,悲觀鎖定可能會降低效能,因為對相同記錄的並行存取可能必須等到應用程式 Update 程式完成為止。

鎖定記錄集中的記錄

如果您要從預設變更 recordset 物件的 鎖定模式 ,您必須先變更模式,才能呼叫 Edit

若要變更記錄集目前的鎖定模式

  1. 呼叫 SetLockingMode 成員函式,並CRecordset::pessimistic指定 或 CRecordset::optimistic

新的鎖定模式會維持有效狀態,直到您再次變更它或記錄集關閉為止。

注意

相對較少 ODBC 驅動程式目前支援悲觀鎖定。

另請參閱

資料錄集 (ODBC)
資料錄集:執行聯結 (ODBC)
資料錄集:新增、更新和刪除資料錄 (ODBC)