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

相關文章
相關標籤/搜索