[Access] ファイルの共有ロック数の制限を越えています。

accessでレコードセットのupdateを一期に大量におこなっていると、「ファイルの共有ロック数の制限を越えています。」のメッセージが。

これを2万行分くりかえす

set rst=new adodb.recordeset
with  rst
 .source="select * from talbe1"
 .connection=・・・・・
・・・・・・
.open
Do until .eof
 !fielda=!fieldb+3
.update
 .move nxt
loop


多分これのこと

多数のトランザクション処理中にエラー メッセージ "ファイルの共有ロック数が制限を超えています" が表示される



「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0」のMaxLocksPerFileを既定値の9500からおおおきするらしい。*9500は行数のことではない。めもり量。

他の方法
1)繰り返しを9500(行数ではあい)を越えないところで分割実行する。
2)do〜loop内に、begintran〜commitranをいれる
(トランザクションを管理するため、do〜loopの外にいれて、このえらーが起きるのはよくあること。
1件1件commitをきちんといれると、なぜか上手くいく。どこまで処理できるはわからないけど。)

トラックバック(0)

このブログ記事を参照しているブログ一覧: [Access] ファイルの共有ロック数の制限を越えています。

このブログ記事に対するトラックバックURL: http://www.re-labo.com/mt/mt-tb.cgi/86

コメントする

このブログ記事について

このページは、ひろろが2009年2月11日 15:49に書いたブログ記事です。

ひとつ前のブログ記事は「[Linux]vimで文字コードを変更する。」です。

次のブログ記事は「[Rails]rake dbコマンド一覧」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01

日本の借金時計


なかのひと


Firefox3 Meter
Chrome Counter 携帯アクセス解析

どこ?

どここjpの位置取得サービスを利用しています



Yahooログロール



ジオターゲッティング


ジオターゲティング

amazon