繁体   English   中英

Jet.OLEDB.4.0连接字符串错误

[英]Jet.OLEDB.4.0 connection string error

我正在使用Jet.OLEDB.4.0连接字符串的旧版Visual Basic应用程序。 用户希望将应用程序的数据库(.mdb文件)移动到联网位置。 我能够允许用户设置新数据文件的位置,并且一切正常,但与数据库在本地计算机上相比,它的速度非常慢。 Microsoft建议更改连接字符串( http://support.microsoft.com/kb/246560/EN-US )中的PageTimeout属性,这就是我遇到问题的地方。 以下是有效但很慢的连接字符串:

Public connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & My.Settings.DataFolderPath & "\Data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=Password;"

当我尝试添加PageTimeOut属性时,出现“找不到可安装的ISAM”。 Visual Studio错误。 我敢肯定,我在这里遗漏了一些非常简单的东西,这甚至可能无法解决网络性能下降的问题。 这是引发错误的连接字符串:

Public connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & My.Settings.DataFolderPath & "\Data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=Password;PageTimeout=5000"

我也试过

Public connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & My.Settings.DataFolderPath & "\Data.mdb;Persist Security Info=True;Jet OLEDB:Database Password=Password;Jet OLEDB:PageTimeout=5000"

您能提供的任何帮助将不胜感激。

拼写不同:

Jet OLEDB:Page Timeout   // note the space

完整的文档在这里

Jet OLEDB:页面超时(DBPROP_JETOLEDB_PAGETIMEOUT)

指示Jet在检查其缓存是否与数据库文件一起过期之前将等待的毫秒数。

但是,根本无法在连接字符串中设置该值,如KB 318161所述

用于Jet的Microsoft OLE DB提供程序包括许多自定义属性,只有在建立与数据库的连接后才能设置。 这些提供程序特定的属性是自定义OLE DB会话属性。 您不能在ADO OLE DB连接字符串中设置这些属性。 打开连接后,必须设置这些属性。

当您在连接字符串中指定以下特定于Jet的属性时,会发生此错误:

  • Jet OLEDB:ODBC命令超时
  • Jet OLEDB:每个文件的最大锁定
  • Jet OLEDB:隐式提交同步
  • Jet OLEDB:刷新事务超时
  • Jet OLEDB:锁定延迟
  • Jet OLEDB:最大缓冲区大小
  • Jet OLEDB:用户提交同步
  • Jet OLEDB:锁定重试
  • Jet OLEDB:独家异步延迟
  • Jet OLEDB:共享异步延迟
  • Jet OLEDB:页面超时
  • Jet OLEDB:回收长值页面
  • Jet OLEDB:重置ISAM统计信息
  • Jet OLEDB:连接控制
  • Jet OLEDB:ODBC解析
  • Jet OLEDB:页面锁定到表格锁定
  • Jet OLEDB:沙盒模式
  • Jet OLEDB:事务提交模式

这可能不是解决问题的方法,但是作为一种潜在的快速解决方法,您是否尝试过使用DSN? 在Windows ODBC中进行设置后,您可以将连接字符串更改为如下所示:

“DSN = MyDSN;将PageTimeout = 5000;”

同样,这可能不是解决方案,但它可能是使您同时前进的快速解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM