SQL Server 2005 訪問接口 "Microsoft.ACE.OLEDB.12.0" 報錯 問題


近日安裝了SQL Server Express SP3,嘗試用以下代碼導入Excel 2003格式文件。

select * from OpenRowSet
('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\test.xls','select * from [sheet1$]')

出現以下錯誤(其他錯誤按照提示操作即可):

消息 7399,級別 16,狀態 1,第 1 行
鏈接服務器 "(null)" 的 OLE DB 訪問接口 "Microsoft.ACE.OLEDB.12.0" 報錯。訪問被拒絕。
消息 7301,級別 16,狀態 2,第 1 行
無法從鏈接服務器 "(null)" 的 OLE DB 訪問接口 "Microsoft.ACE.OLEDB.12.0" 獲取所需的接口("IID_IDBCreateCommand")。

 

或者類似錯誤信息,比如找不到列等等,都是“訪問被拒絕”原因造成的。看起來有點像引擎的訪問權限不夠。

http://wandejun1012.iteye.com/blog/1571118 中提到:

將SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)兩個服務的登錄身份改為LocalSystem

安裝的時候默認是network service。不過本人覺得這樣修改治標不治本,而且有安全隱患。

 

http://topic.csdn.net/u/20090602/17/2b46432b-7770-4444-982c-b81d442f34b9.html

這上面有關於這方面的討論,也有其他解決方法。上面37樓指出的方法多人反饋可行:

發現根本原因了:management studio--->服務器對象-->鏈接服務器-->Microsoft.Jet.OLEDB.4.0-->右鍵屬性-->訪問接口選項:全都不選

 

今天我安裝SQL Server Express SP4解決問題。估計是SP3與Excel 2007引擎的兼容性不是那么好,SP4就解決了這個問題。而通過右鍵我的電腦-管理-服務,查看SQL SERVER的服務運行賬戶,仍然是network service。

 

--補充:后來在另外一台電腦上(Windows XP SP3)安裝又不行。

112213303312


免責聲明!

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



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