Access複製粘貼數據時提示MaxLocksPerFile的解決辦法

2017-11-18 16:25:00
黃善超
原創
3966

在複製數據粘貼到Access數據錶時,有時會提示“文件共享鎖定數溢齣。請增加MaxLocksPerFile註冊錶項值。”的錯誤提示


這是因爲粘貼的數據過多導緻,MaxLocksPerFile 設置決定 Microsoft Jet 加在每箇文件上的最大鎖數。MaxLocksPerFile 的默認值爲 9500


解決辦法:

一、在註冊錶修改MaxLocksPerFile每箇文件的最大鎖數

  1. 單擊“開始”,然後單擊“運行”。
  2. 鍵入 regedit,然後單擊“確定”。
  3. 在註冊錶編輯器中,找到以下註冊錶項:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
  4. 在註冊錶編輯器的右窗格中,雙擊“MaxLocksPerFile”。
  5. 在“編輯 DWORD 值”對話框中,單擊“十進製”。
  6. 根據需要修改“數值數據”框中的值,然後單擊“確定”。


二、使用 SetOption 方法臨時更改 MaxLocksPerFile

  1. 新建一箇模塊
  2. 在“立卽窗口”中(可以按Ctrl+G顯示立卽窗口)運行該代碼:
    DAO.DBEngine.SetOption dbmaxlocksperfile ,15000

註意:該代碼必鬚先引用 Microsoft DAO 3.6 對象庫。

SetOption 方法臨時覆蓋每箇文件的默認鎖數。在設置MaxLocksPerFile 註冊錶項時設置每箇文件的默認鎖數。通過使用 SetOption 方法來設置新值。在關閉 DBEngine 對象之前該新值將一直有效。要使用第二種方法,請按照下列步驟操作:


要處理大型事務,請根據需要設置 MaxLocksPerFile 值,然後在會話中運行事務。

使用 SetOption 方法對 MaxLocksPerFile 設置所做的更改僅適用於當前會話。


註意:

MaxLocksPerFile 不能設置爲無限大如果您正在 Novell NetWare 服務器上工作,請不要更改該值,因爲每箇連接的最大服務器記録鎖數是 10,000。

    分享