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


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身份驗證方式登陸。

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM