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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.87371 の関連記事表示

<< 0 >>
■87371  Re[3]: OLEDBでのMax Locks Per Fileの設定
□投稿者/ 魔界の仮面弁士 -(2018/05/15(Tue) 18:00:56)
    No87362 (dekoderu さん) に返信
    > oCommand = oConn.CreateCommand()を削除しても
    > エラーが発生しました。
    まぁ、そもそも提示のコードだと、構文エラーになるはずなんですけれどね。
    『"』が奇数個になっていますし。


    > Jet OLEDB:Max Locks Per File=100000の
    > 記述を追加する前はエラーが発生しないため、

    上記エントリを含めると、当方でも駄目でした。
    当方で利用したプロバイダは下記の通り。
     64bit Microsoft.ACE.OLEDB.15.0
     64bit Microsoft.ACE.OLEDB.12.0
     32bit Microsoft.Jet.OLEDB.4.0
     32bit Microsoft.Jet.OLEDB.3.51


    代わりに、Jet OLEDB:Registry Path を通じて設定するようにしてみてください。

    oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
      "Data Source=""C:\temp\db1.accdb"";" & _
      "Jet OLEDB:Registry Path=SOFTWARE\MyCorporation\MyApplication\1.0"

    あるいは、アプリ固有のカスタムエントリを作る代わりに、
    KB815281 の「方法 1」のように、HKLM 側の システム全体設定で
    指定することもできるかと思います。



    > 記述に誤りがあるのか、そもそもOLEDBでは
    > Max Locks Per Fileが設定できないとか
    > あるんですかね・・・

    KB815281 の「方法 2」でも示されていますが、DAO 接続時には設定できるようです。
    (有効になっているかは判断できませんでしたが)

    Dim de As New Dao.DBEngine()
    de.SetOption(Dao.SetOptionEnum.dbMaxLocksPerFile, 100000)
    Dim db As Dao.Database = de.OpenDatabase("C:\temp\db1.accdb")
    db.Close()
    System.Runtime.InteropServices.Marshal.ReleaseComObject(db)
    System.Runtime.InteropServices.Marshal.ReleaseComObject(de)


    Jet OLEDB:Max Locks Per File については、ADO.NET どころか、
    ADO でさえ弾かれました。.NET はおろか、Access VBA からも駄目。

    それどころか、JET 4.0 / Jet 3.51 プロバイダでも設定できませんでした。
    MDAC 2.5 の頃に実験した時は設定できた気もするのですが…自信なし。
    http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_41433_0.html
記事No.87353 のレス /過去ログ150より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -