|
有不少網(wǎng)友在Office中國QQ群中遇到這樣的問題,在大型事務處理期間出現(xiàn)“File sharing lock count exceeded…”(超過文件共享鎖計數(shù)…)錯誤
解決辦法
使用注冊表編輯器需要您自擔風險。 要解決此問題,請增加每個文件的最大鎖數(shù)。為此,請使用下列方法之一:
方法 1:設置 MaxLocksPerFile 的注冊表項以增加每個文件的最大鎖數(shù)- 單擊“開始”,然后單擊“運行”。
- 鍵入 regedit,然后單擊“確定”。
- 在注冊表編輯器中,找到以下注冊表項:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
- 在注冊表編輯器的右窗格中,雙擊“MaxLocksPerFile”。
- 在“編輯 DWORD 值”對話框中,單擊“十進制”。
- 根據(jù)需要修改“數(shù)值數(shù)據(jù)”框中的值,然后單擊“確定”。
注意:該方法可為所有使用 Microsoft Jet 數(shù)據(jù)庫引擎 4.0 版的應用程序更改 Windows 注冊表設置。
方法 2:使用 SetOption 方法臨時更改 MaxLocksPerFile注意:本文中的代碼示例使用 Microsoft 數(shù)據(jù)訪問對象。為使該代碼正常運行,您必須引用 Microsoft DAO 3.6 對象庫。為此,請在 Visual Basic 編輯器中單擊“工具”菜單上的“引用”,并確保選中“Microsoft DAO 3.6 對象庫”復選框。 SetOption 方法臨時覆蓋每個文件的默認鎖數(shù)。在設置 MaxLocksPerFile 注冊表項時設置每個文件的默認鎖數(shù)。通過使用 SetOption 方法來設置新值。在關閉 DBEngine 對象之前該新值將一直有效。要使用第二種方法,請按照下列步驟操作:- 打開 Microsoft Access。
- 打開一個數(shù)據(jù)庫。在左窗格中,單擊“模塊”。
- 在右窗格中,右鍵單擊“<模塊名>”,然后單擊“設計視圖”。
注意:如果沒有現(xiàn)有模塊,請創(chuàng)建一個新模塊。 - 在 “Microsoft Visual Basic -<數(shù)據(jù)庫名>-[<模塊名>(代碼)]”窗口中,單擊“視圖”菜單中的“立即窗口”。
- 在“立即窗口”中,輸入以下代碼:DAO.DBEngine.SetOption dbmaxlocksperfile ,15000
- 按 Enter 鍵運行此行代碼。
注意:這會將 MaxLocksPerFile 值臨時設置為 15,000。
要處理大型事務,請根據(jù)需要設置 MaxLocksPerFile 值,然后在會話中運行事務。
使用 SetOption 方法對 MaxLocksPerFile 設置所做的更改僅適用于當前會話。
MaxLocksPerFile 設置決定 Microsoft Jet 加在每個文件上的最大鎖數(shù)。MaxLocksPerFile 的默認值為 9,500。但是,如果您正在 Novell NetWare 服務器上工作,請不要更改該值,因為每個連接的最大服務器記錄鎖數(shù)是 10,000。
但注意 32位與64位系統(tǒng)的注冊表位置是不同的.
針對 Access 2000, Access 2002, Access 2003 運行在Windows 32 bit (x86)
找到這個注冊項:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
針對 Access 2000, Access 2002, Access 2003 運行在Windows 64 bit (x64)
找到這個注冊項:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Jet 4.0
針對 Access 2007 運行在Windows 32 bit (x86)
找到這個注冊項:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE
針對 Access 2007 運行在Windows 64 bit (x64)
找到這個注冊項:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE
針對 Access 2010 運行在Windows 32 bit (x86)
找到這個注冊項:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\ACE
針對 Access 2010 運行在Windows 64 bit (x64)
找到這個注冊項:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\ACE
—
在右邊面板, 雙擊 MaxLocksPerFile 項
在修改 DWORD 值窗口, 選擇 Decimal(十進制) ,修改數(shù)據(jù)為一個比較大的值
|
|