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;

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;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
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身份验证方式登陆。

  

  

Microsoft.ACE.OLEDB.12.0 及其在 MSSQL中的使用的更多相关文章

  1. Microsoft ACE OLEDB 12.0 数据库连接字符串

    Excel 97-2003 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;Extended ...

  2. .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...

  3. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序

    这种错误的可能性有几种,比如: 1.没有安装数据访问组件,需要安装相应版本的数据访问组件: 2.没有安装相应版本的Office客户端,需要安装相应版本的Office客户端: 3.Microsoft.J ...

  4. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序 解决方法

    最近在搞asp.net.今天在做数据库操作的时候,老发生错误,还以为是自己代码有问题,检查了好久都发现错误. 错误提示: 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程 ...

  5. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法

    一.未在本地计算机上注册“microsoft.ACE.oledb.4.0”提供程序 http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c ...

  6. 未在本地计算机上注册"microsoft.ACE.oledb.12.0"提供程序解决办法

    错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序. 解决办法: 去http://download.microsoft.com/download/7/0/3/7 ...

  7. Microsoft ACE OLEDB 12.0概念及用法

    首先需要清楚几个概念: Database engine(数据引擎):一些预先存储于数据库中的组件: Microsoft JET (Joint Engine Technology):Microsoft ...

  8. 実行時にMicrosoft.ACE.OLEDB.12.0プロバイダーはローカルコンピュータに登録されていませんが出てしまう

    環境 Windows8 64bit Visual Studio 2010 Access 2010 32bit 接続プロバイダは「Microsoft.ACE.OLEDB.12.0」 対応 Downloa ...

  9. 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。

    笔记本装的是windows 7旗舰版64位系统,使用的是MS Office 2007(Microsoft.ACE.OLEDB.12.0,32位程序),开发用的是Visual Studio 2010,我 ...

随机推荐

  1. 微信小程序 - tab选项卡(组件)

    更新日期: 2019/3/5:首次发布,默认下标“curIndex”超出红色提示 2019/3/7:增加tabName,可自定义数据标题名称(详情看示例) 支持单个/多个tab(显示/隐藏) 参数: ...

  2. Want to write a book? Use word count to stay on track

    http://paloalto.patch.com/groups/maria-murnanes-blog/p/bp--want-to-write-a-book-use-word-count-to-st ...

  3. XAML中特殊符号书写

    XAML中特殊符号书写     表示换行.      表示空格.

  4. 013-Go通archive/zip生成ZIP文件

    package main import( "io/ioutil" "os" "bytes" "archive/zip" ...

  5. PYQT操作JS并且截图事例

    如何安装PYQT,可以查看我的上一篇文章:http://www.cnblogs.com/liqiu/p/3361948.html 然后运行下面的带有JS程序的Python脚本即可: #-*- codi ...

  6. 转:nginx基础概念(lingering_close)

    lingering_close,字面意思就是延迟关闭,也就是说,当nginx要关闭连接时,并非立即关闭连接,而是再等待一段时间后才真正关掉连接.为什么要这样呢?我们先来看看这样一个场景.nginx在接 ...

  7. sublime text执行PHP代码

    新建编译系统 { "cmd": ["php", "$file"], "file_regex": "php$&q ...

  8. Linux多线程同步之相互排斥量和条件变量

    1. 什么是相互排斥量 相互排斥量从本质上说是一把锁,在訪问共享资源前对相互排斥量进行加锁,在訪问完毕后释放相互排斥量上的锁. 对相互排斥量进行加锁以后,不论什么其它试图再次对相互排斥量加锁的线程将会 ...

  9. tpcc-mysql 系列一:安装使用

    1:安装epel包: rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm 2: yum i ...

  10. CentOS 6.9 下安装DB2

    操作系统:CentOS6.9_x64 DB2安装文件: db2_v101_linuxx64_expc.tar.gz 安装数据库 tar zxvf db2_v101_linuxx64_expc.tar. ...