SQL SERVER 2017 使用Microsoft.ACE.OLEDB.12.0的弯路总结!

    好好的清明节假期,一时冲动把SQL SERVER服务器升级到了 2017。但是足足耗费6天,才走上正路。

    把我安装经过的弯路总结一下,希望看到这篇文件的人,可以幸免!

    1、office 对SQL SERVER 2017的影响。

    我的电脑是win8免费升级到win10,以前安装过SQL SERVER 2008.

    SQL SERVER 2008一直比较好用。

    听说SQL SERVER 2017支持Python,于是升级到了SQL SERVER 2017

    在使用SQL打开Excel数据表时,提示消息7302,无法创建链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"的实例。

    查找原因,发现链接服务器找不到Microsoft.ACE.OLEDB.12.0。

   

    原因是office是2007 是32位的,而SQLSERVER是64位的。而office2007没有64位的。

  

    2、Microsoft.ACE.OLEDB.12.0的安装

    先下载了AccessDatabaseEngine_X64.exe,安装时提示已经有32为office版本,不可以安装。

    用SuperOrcaSetup修改了AccessDatabaseEngine_X64,可以安装了。

    打开 ssms Microsoft.ACE.OLEDB.12.0出现了。设置好Microsoft.ACE.OLEDB.12.0属性。


     但是select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;HDR=Yes;IMEX=1;Database=e:\Book1.xlsx')...[Sheet1$]

     依然报错:链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "未指定的错误"。
     消息 7303,级别 16,状态 1,第 2 行无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。

     无奈更换office版本为64位版本。
     Microsoft.ACE.OLEDB.12.0也设置正常:

    但是依然报错:
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;HDR=Yes;IMEX=1;Database=e:\Book1.xlsx')...[Sheet1$]
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "未指定的错误"。
消息 7303,级别 16,状态 1,第 2 行
无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。

select  *  from  
OpenDataSource ('Microsoft.ACE.OLEDB.12.0','Data Source=e:\sudo.mdb')...[sodu]
链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "未指定的错误"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器“(null)”的 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。

OpenRowSet 同样是消息7303.


    3、感谢CSDN论坛大神

    在论坛SQL版主吉普赛的歌的指导下:

   


使用本地系统账户。问题终于解决了。




猜你喜欢

转载自blog.csdn.net/www_rsqdz_net/article/details/79886942