使用64位Office 2013,无法在64位SQL服务器

时间:2016-05-20 15:41:07

标签: ms-office 32bit-64bit sql-server-express openrowset

我在64位计算机(使用Windows 10)上使用MS Office 2013 64位(在卸载32位Office 2013之后),并通过IP地址连接SQL Server 2014 Express。

我的目标是让SQL Server使用“SELECT * FROM OPENROWSET()”语句读取Excel数据。

我的问题是:我安装了“AccessDatabaseEngine_x64.exe”,但在执行“openrowset()”时,SQL Server给我错误消息“32位OLE DB提供程序”Microsoft.ACE.OLEDB.12.0“无法加载在64位SQL Server上进行处理。“请阅读以下内容,以便了解我进行了大量的研究和试验。

问题是:在这种情况下我应该使用AccessDatabaseEngine还是AccessDatabaseEngine_x64?怎么样?

背景 - 使这个问题变得复杂: 当我在我的计算机上有32位办公室,并在SQL Server的“数据库”下使用“导入”功能导入excel(.xlsx)数据时,SQL Server强制我安装AccessDatabaseEngine(32位)。所以我做了。导入成功了。 但是我想让SQL Server动态读取本地excel文件而不导入,所以我决定在SQL Server中使用“新建链接服务器”功能将excel设置为服务器,但是失败了。错误消息msg基本上是“无法为链接服务器”Mycomputer“初始化OLE DB提供程序'SQLNCLI11'的数据源对象。然后我找到了”openrowset / opendatasource“语句,在SQL Server上尝试了它,并得到了错误信息:”32 -bit OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”无法在64位SQL Server上进行加载。“我尝试的解决方案如下:

1)卸载AccessDatabaseEngine;

2)insularled AccessDatabaseEngine_x64(检查注册表项以确保其注册);

3)根据“https://blogs.msdn.microsoft.com/farukcelik/2010/06/04/accessing-excel-files-on-a-x64-machine/”运行配置;

4)再次运行“openrowset / opendatasource”但仍然得到msg“Microsoft.ACE.OLEDB.12.0”无法在64位SQL Server上进行加载。“只是现在,我无法导入excel( .xlsx)再进入SQL Server,我猜因为卸载了AccessDatabaseEngine;

5)卸载32位办公室;

6)安装了64位办公室;

7)再次运行“openrowset / opendatasource”,仍然得到msg“Microsoft.ACE.OLEDB.12.0”无法在64位SQL Server上加载进程。“

8)卸载AccessDatabaseEngine_x64;

9)安装了AccessDatabaseEngine,再次运行“openrowset / opendatasource”,仍然得到msg“Microsoft.ACE.OLEDB.12.0”无法在64位SQL Server上加载进程。“

我尝试的“Openrowset”声明就像:

SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0 Xml;
   Database=C:\documents\2016.xlsx',
   [sheet1$]); 

因此,对于32位办公室或64位办公室来说,似乎AccessDatabaseEngine和AccessDatabaseEngine_x64都不适用于我。

我错过了什么吗?

谢谢!

0 个答案:

没有答案