×

Microsoft.ACE.OLEDB.12.0 及其在 MSSQL中的使用

hqy hqy 发表于2021-09-18 10:48:25 浏览1416 评论0

抢沙发发表评论

1.Microsoft.ACE.OLEDB.12.0 简介数据库

就是一个数据访问接口,用于在office文件和非office应用程序间传输数据。例如 Microsoft Office Access 2010(*.mdb和 *.accdb)文件和Microsoft Office Excel 2010(*.xls、*.xlsx和 *.xlsb)文件)与其余数据源(例如 Microsoft SQL Server)之间传输数据。安全

 

2.Microsoft.ACE.OLEDB.12.0 在 MSSQL中的应用服务器

1)  查看是否已经安装此接口分布式

进入SSMS后,在对象资源管理器中,位次展开“服务器对象”--- “连接服务器”---“访问接口”,若是在访问接口下面找到了Microsoft.ACE.OLEDB.12.0(以下图),则说明已经安装此接口。也有可能版本号不是12.0,此版本是对应Office 2010的。通常状况下,若是安装了Office,此接口会跟着一块儿被安装。工具

2)  安装接口代理

若是没能找到此接口,说明系统没有安装Office或者所安装版本(32bit或64bit)与SQL Server版本不一致。能够有以下解决方案:对象

 a) 若Office与MSSQL位数不一致,从新安装与SQL Server位数相同的Office,同为32bit或64bit;blog

 b) 若不许备安装Office,能够单独安装Microsoft.ACE.OLEDB.12.0:32bit下载 或64bit下载。接口

 若安装时出现点击后闪退,能够先用WINRAR将exe安装包解压,再运行里面的setup资源

 3)使用接口读取Excel文件示例

 读取D盘目录下的Test.xlsx文件Sheet1中的内容

SELECT ID,Content FROM
OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Test.xlsx')... [sheet1$]

 

3.常见问题

1)

消息 7403......还没有注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"。

缘由:当前所连数据库所在服务器,未安装此接口。

解决方案:参见上面第2点。

 2)

消息 15281……SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,由于此组件已做为此服务器安全配置的一部分而被关闭

可能缘由:未开启 Ad Hoc Distributed Queries(即席分布式查询)

参考解决方案:用代码开启 Ad Hoc Distributed Queries

sp_configure 'show advanced options', 1;GORECONFIGURE;GOsp_configure 'Ad Hoc Distributed Queries', 1;GORECONFIGURE;GO

3)

 消息 7399……连接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 报错。访问被拒绝。

 消息 7301……没法从连接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 获取所需的界面("IID_IDBCreateCommand")。

 消息 7302……没法建立连接服务器 "(null)" 的 OLE DB 访问接口 "MSDASC" 的实例

 可能缘由:SQL Server(MSSQLSERVER) 的登录身份不合适

 参考解决方案:将相关服务的登录身份改成 local system

 操做方法:

 运行 services.msc,找到SQL Server(MSSQLSERVER),右键属性,登录相关选项卡,本地系统账户。

 或

开始---全部程序---MicrosoftSQL Server 2008 R2(或其余版本)---配置工具---SQLServer 配置管理器,找到SQL Server(MSSQLSERVER) ,右键属性,登录选项卡,内置账户改成Local system。

最后,若在MSSQL JOB中也要用到此接口,则SQL Server代理(MSSQLSERVER)这个服务也要作相同修改。

4)

返回了消息 "Microsoft Access 数据库引擎没法打开文件“”或向其写入数据。它已经被其余用户以独占方式打开,或者您没有查看和写入其数据的权限

文档已被本地帐号打开,关闭便可,若是要打开时也能够访问,请用Windows身份验证方式登录。


打赏

本文链接:https://www.kinber.cn/post/1884.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客