分享方式:


資料錄集:鎖定資料錄 (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)