C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■87362 / )  Re[2]: OLEDBでのMax Locks Per Fileの設定
□投稿者/ dekoderu (2回)-(2018/05/15(Tue) 15:10:54)
No87354 (魔界の仮面弁士 さん) に返信

返信いただきありがとうございます。


> 2018/05/14(Mon) 22:33:56 編集(投稿者)
>
> ■No87353 (dekoderu さん) に返信
>>データベースをAccess、画面をVB.Net2008で作成しております。
> OLE DB Provider はインストール済みですか?
> https://www.microsoft.com/ja-jp/download/details.aspx?id=13255
> https://www.microsoft.com/en-us/download/details.aspx?id=54920
>
>
> インストールしてある場合、32bit 版ですか? 64bit 版ですか?

インストール済みです。
32bit版です。

>
>
> アプリが AnyCPU ビルドの場合
>  32bit 版 Windows では 32bit 版の OLE DB Provider が必要
>  64bit 版 Windows では 64bit 版の OLE DB Provider が必要
>
>
> アプリが x86 ビルドの場合
>  32bit/64bit 版 Windows いずれにおいても、32bit 版の OLE DB Provider が必要
>
>
> アプリが x64 ビルドの場合
>  32bit 版 Windows では動作しない
>  64bit 版 Windows では 64bit 版の OLE DB Provider が必要
>

アプリはx86ビルドになっております。

>
>
>>大量のデータをインサートした際に、「ファイルの共有ロック数が制限を超えています」というエラーが発生したため、サイトを調べたところ
>>Max Locks Per Fileの設定を行えば回避できる方法がありました。
> "Max Locks Per File" ではなく、提示コードにあるとおり、
> "Jet OLEDB:Max Locks Per File" ですね。
> ちなみに初期値は 0 、既定値は 9500 です。
>
> https://msdn.microsoft.com/en-us/library/ms719649.aspx
> https://msdn.microsoft.com/ja-jp/library/office/jj249228.aspx
>
>
>
>>Public oCommand As New OleDbCommand
> 最初に New してインスタンスを生成し、
>
>>oCommand.Connection = oConn
> そこに Connection をセットまでしたのに
>
>>oCommand = oConn.CreateCommand()
> 新たに生成した OleDbCommand のインスタンスで上書きしているのは何故でしょう?

プログラムの作成者が退職しているため
なぜそのようになっているのかがすぐにわかりませんでした。

oCommand = oConn.CreateCommand()を削除しても
エラーが発生しました。
Jet OLEDB:Max Locks Per File=100000の
記述を追加する前はエラーが発生しないため、
記述に誤りがあるのか、そもそもOLEDBでは
Max Locks Per Fileが設定できないとか
あるんですかね・・・





返信 編集キー/


管理者用

- Child Tree -