Access 錯誤代碼3052超過檔案共用限制數

Why?
1.檔案共用限制是作業系統一定會有的(舊Dos有其環境變數可設定去干涉),要不然系統會爆..
2.Windows系統聽說已可同時開啟過萬的檔案數了,但可能Access另有考量而另有其下限制..
3.該牽涉本身的PC有多少資源可用之,同時開啟的記錄緩衝區(佔用多少資源),該視每筆記錄應該視為多少個檔案物件登錄與作業系統之中...
4.在您Run至9391時發生錯誤,應代表Access本身也用了近110個緩衝物,因它預設為9500..
5.錯誤後發生可順利的繼續往下Run,會否是系統利用要您答覆的時間中,已完成了之前9390筆變更的動作了,因此時系統可能已有了時間去釋放之前的資源,重頭計數了(當然它Access自己佔用的可能不會如此...)

how?
1.因我曾作的動作是用SQL直接一次Update一定量及值,雖過十萬筆也沒有遇過您的問題,so我不能確認您會是如何(可能誠如它言:視您的一筆記錄佔用了多少資源),所以也建議您可否試看看了,在得知需改變記錄目前之值時,不要用Edit迴圈而直接使用Sql資料庫的語言動作Update作查詢動作變更之(在哪部機器Run確實是很重要地)..
2.當然是去改變每部可能Run程式的電腦MaxLocksPerFile注冊表之值,不過要是人家使用的是386PC呢???
3.建議您是否分段如每五千筆為一區段,再在每區段中加以緩衝時序讓系統可有閒暇了(Doevents,那它就會有機會解決及完成目前未完成的動作了)..
4.可能會否您的Update句子,其間可能有其錯誤狀況發生而令系統無法立即接受它的動作指令,以致並未真的有Update了,如此系統可能還將其動作指令留存於系統之中了,因它解釋是"同時間"發生的共用才會引發3052的問題之...........


PS:轉述JETERR35.HLP中錯誤3052之說明:
您超出了記錄限制所允許的記錄數量,這個極限經由 MaxLocksPerFile 設定登錄在您的系統內。預設值是 9500,可用 Regedit.exe
編輯登錄設定或用 SetOption 方法設定。
經查找(Jet4.0)為:[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Jet 4.0]
"MaxLocksPerFile"=dword:0000251c (9500)
一些可能引起應用程式遭遇此限制門檻的因素如下:
*可用記憶體的總數量
*記錄集內資料列的大小
*網路作業系統的限制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值