
[英]“Microsoft.jet.oledb.4.0” provider not registered issue after October Windows Patching
[英]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.