Access復制粘貼數據時提示MaxLocksPerFile的解決辦法

2017-11-18 16:25:00
tmtony8
原創
7281

在復制數據粘貼到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。

    分享
    黑龙江p62开奖公告l