| ■87388 / inTopicNo.6) | 
               Re[4]: OLEDBでのMax Locks Per Fileの設定 | 
             
          
         
        
        □投稿者/ dekoderu (4回)-(2018/05/16(Wed) 18:35:28)  
        
          
            
              
                 | 
                2018/05/16(Wed) 18:41:11 編集(投稿者)
  ■No87371 (魔界の仮面弁士 さん) に返信
  返信いただきありがとうございます。
 
  > ■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 側の システム全体設定で > 指定することもできるかと思います。
  Registry Pathを使用してできるんですね。 対応を検討したいと思います。
 
  >  >  >  >>記述に誤りがあるのか、そもそも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
 
  詳しく調査していただきありがとうございました。 大変助かりました。
 
 
 
  | 
               
            
           
         
        解決済み 
       |