请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.16.0 未注册。如果未安装 32 位驱动程序,请在 64 位模式下运行该软件包
Posted
技术标签:
【中文标题】请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.16.0 未注册。如果未安装 32 位驱动程序,请在 64 位模式下运行该软件包【英文标题】:The requested OLE DB provider Microsoft.ACE.OLEDB.16.0 is not registered. If the 32-bit driver is not installed, run the package in 64-bit mode 【发布时间】:2021-03-03 17:48:31 【问题描述】:我正在使用 Visual Studio 2017 创建一个 SSIS 包。 我有一台 Win 10 64 位机器和 MS Office 2016 64 位机器。
来源:SQL Server 数据库
目标:Excel
在 Excel 连接管理器中,我选择了 Excel 版本“Microsoft Excel 2016”
创建的连接字符串如下:
Provider=Microsoft.ACE.OLEDB.16.0;Data Source=\\MyServer\MyFilePath\MyXLSFile20210303.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES";
在 Excel 目标上,我收到此错误:
The requested OLE DB provider Microsoft.ACE.OLEDB.16.0 is not registered. If the 32-bit driver is not installed, run the package in 64-bit mode. An OLE DB record is available. Source: "Microsoft OLE DB Service Components" Hresult: 0x80040154 Description: "Class not registered".
我的包 > 属性 > 调试 > Run64BitRuntime 已经设置为 True。
我已经安装了“Microsoft Access Database Engine 2016 64 Bit”(我从https://www.microsoft.com/en-us/download/details.aspx?id=54920下载的)。
我无法安装 32 位版本,因为我收到错误消息“您当前安装了 64 位 Office 产品,因此无法安装 32 位版本的 Microsoft Access Database Engine 2016”。
我该如何解决这个错误?
谢谢
【问题讨论】:
【参考方案1】:这有点复杂。
Visual Studio 2017 是一个 32 位应用程序。这就是为什么它需要在 dev 上安装 32 位 ACE 提供程序的原因。机器。
可以在同一台机器上安装 ACE 提供程序的两个版本,即 32 位和 64 位。命令提示符下的 /quiet 标志允许这样做。 请看下面的屏幕截图。
作为最终结果,您将需要以下内容:
SSIS 开发。机器:32 位 ACE 提供程序,VS 将 Run64BitRuntime 设置为 False。 服务器上的 SSIS 运行时,64 位 ACE 提供程序。【讨论】:
【参考方案2】:右键单击 SSIS 项目并选择属性。在
配置属性,选择调试并将Run64BitRuntime
更改为True。
这将允许在调试模式下运行的包使用 64 位架构而不是 32 位。
一旦您尝试将程序包从您的机器移动到实际服务器,请记住在服务器上部署 ACE 驱动程序。
【讨论】:
非常感谢大家的快速回复。伊扎克的建议奏效了! “服务器上的 SSIS 运行时,64 位 ACE 提供程序”,您的意思是我需要在服务器上安装 64 位 ACE 提供程序“Microsoft Access Database Engine 2016 64 位”吗? (即使在我的 DEV 机器上,Package Run64BitRuntime 设置为 False)。顺便说一句,在我的 DEV 机器上安装 32 位 ACE Provider 后,即使 Package Run64BitRuntime 设置为 True,我也不再收到错误消息。我还应该将 Package Run64BitRuntime 设置为 False 吗?以上是关于请求的 OLE DB 提供程序 Microsoft.ACE.OLEDB.16.0 未注册。如果未安装 32 位驱动程序,请在 64 位模式下运行该软件包的主要内容,如果未能解决你的问题,请参考以下文章
通过 Microsoft OLE DB 提供程序使用 EXCEL 作为数据源
Microsoft Office 12.0 Access 数据库引擎 OLE DB 提供程序问题
无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象
SQL Server 2008 R2 中缺少 Microsoft Office 12.0 Access 数据库引擎 OLE DB 提供程序?
SQL Server:无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”的数据源对象