【问题标题】:How can we set oledb provider for 64 bit operating system我们如何为 64 位操作系统设置 oledb 提供程序
【发布时间】:2015-11-09 09:39:38
【问题描述】:

我想在我的 sql 中获取 jet 4.0 的 oledb 提供程序。我使用的是 64 位版本的 windows。

我创建了一个链接服务器来访问 access 数据库并将该数据库导入到 sql。

所以,我编写了一个存储过程来创建一个链接服务器,我提到提供者为 Microsoft oledb jet 4.0。

我在 64 位中遇到了这样的错误

'OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 不能用于分布式查询,因为提供程序配置为在单线程单元模式下运行。'

在 32 位窗口中它工作正常。我安装了 microsoft oledb jet 驱动程序。但是在 64 位中它没有被安装。

您能否告诉我在 Sql 链接服务器中获取提供程序 oledb jet 4.0 的建议。

【问题讨论】:

  • 尝试在连接字符串中使用Provider=Microsoft.ACE.OLEDB.12.0; 而不是Provider=Microsoft.Jet.OLEDB.4.0
  • 这是 windows 窗体还是 ASP?
  • 这也不行,我之前也检查过这个

标签: c# ms-access


【解决方案1】:

当您需要使用MS Access数据库时,您需要安装数据库访问引擎。检查链接:https://www.microsoft.com/en-us/download/details.aspx?id=13255 还要考虑连接字符串中您在主机上安装的 Access 版本。

【讨论】:

  • 我在使用 ACE 引擎连接到链接服务器时遇到这样的错误“无法为链接服务器“ClientAc825”初始化 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象。链接服务器“ClientAc825”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”返回消息“无法打开数据库''。它可能不是您的应用程序识别的数据库,或者文件可能已损坏。”。'跨度>
【解决方案2】:

对我来说,有效的方法是从以下位置安装数据库驱动程序: 2016 Access 可再发行版 https://www.microsoft.com/en-us/download/details.aspx?id=54920 然后调整我的连接字符串例如:

connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=F:\SKS\SKSDatabase\Orders.mdb";

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2013-08-29
    • 2017-07-17
    • 2012-09-01
    • 2018-04-20
    • 2010-09-05
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多