設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 18573|回復: 2
打印 上一主題 下一主題

[Access本身] (技巧)大型事務處理期間出現(xiàn) 超過文件共享鎖計數(shù) 解決辦法

[復制鏈接]

點擊這里給我發(fā)消息

跳轉到指定樓層
1#
發(fā)表于 2014-10-23 16:56:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
有不少網(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ù)為一個比較大的值  


本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖1 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2014-10-23 18:18:53 | 只看該作者
謝謝指導
回復

使用道具 舉報

點擊這里給我發(fā)消息

3#
發(fā)表于 2014-10-23 22:20:56 | 只看該作者
學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 08:26 , Processed in 0.087276 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表