sql-server - Windows Server 2016 中的访问数据库引擎 OLEDB

标签 sql-server excel ssis oledb ssis-2012

我有一个使用 Microsoft ACE OLEDB 12.0 驱动程序的应用程序,因此我在我的系统中安装了 2007 Office System 驱动程序:数据连接组件。

我还创建了 SSIS 包来从 excel 和 csv 文件中提取数据,然后使用 Microsoft ACE OLEDB 12.0 将这些数据插入到 SQL 表中。下面是我的连接字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;
Extended Properties="Excel 8.0;HDR=YES";

我想将这些应用程序移至服务器环境进行部署,当我联系 IT 部门要求安装 Office 2007 系统驱动程序时,他们说 Windows Server 2016 不支持该驱动程序,并且存在安全漏洞。

因此我想知道我们是否有任何替代的 Microsoft OLEDB 提供程序用于 SSIS 操作?我尝试安装 Office 2010,但收到错误消息

Microsoft OLEDB 12.0 is not registered on my machine.

安装 Microsoft Access Database Engine 2016 Redistributable 能否帮助我解决问题。如果是,我的连接字符串是什么。下面的说法正确吗?

Provider=Microsoft.ACE.OLEDB.16.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended Properties="Excel 12.0;HDR=YES";

windows server 2016也不支持office 2016 oledb。那么当我们在windows server 2016上安装Office 2007或2016时,会出现哪些安全漏洞?

我们将非常感谢任何帮助。

最佳答案

Microsoft OLEDB 12.0 is not registered on my machine.

由于您安装了 Access Database Engine 2010 并且收到了上述错误,因此看起来这是一个 32/64 位问题。

确保您安装了可再发行组件 32 和 64。

如果您需要在 32 位安装的同时安装 AccessDataBaseEngine x64,则需要以被动模式运行安装:

被动模式安装步骤

  1. 在“开始”菜单下的 Windows 搜索框中键入 cmd 并选择 cmd.exe,打开命令提示符
  2. 键入 64 位 Access Database Engine 2010 安装文件的文件路径和文件名,后跟空格和 /passive(这将运行安装且不会显示任何错误消息)。
  3. 在“开始”菜单下的 Windows 搜索框中键入 regedit,然后选择 regedit.exe,打开注册表编辑器
  4. 删除或重命名以下注册表项中的 mso.dll 注册表值:

    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" 
    

更多详细信息和屏幕截图可在下面的链接中找到

引用

关于sql-server - Windows Server 2016 中的访问数据库引擎 OLEDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467568/

相关文章:

sql-server - LINQ:DataContext Life 和 System.Data.SqlClient.SqlException:超时已过期

c# - 使用 C# 远程连接到 SQL Server Express 2008 时遇到问题 - 但 Windows ODBC 管理员可以工作

c# - 如何循环遍历 SSIS 脚本任务中的通用对象

sql-server - SSIS - 动态循环多个数据库

SQL Server 触发器更新和增量计数器

c# - ADO.net数据表是变化时间

excel - Apache poi setformula 不适用于 SE

excel - 为什么 Cell.CellReference 是可选的?否则我如何获得手机位置?

r - 在 R 或 Excel 中计算多行中不同定性值的数量

sql-server - 是否可以在 OLE DB 连接管理器下的 SSIS 包内使用多个数据源?