2016-11-09 211 views
0

首先我配置即席分佈式查詢與下面的查詢SQL Server的OPENROWSET OLE DB提供程序「MSDASQL」鏈接服務器「(空)」

EXEC sp_configure 'show advanced options', 1 
RECONFIGURE 
GO 
EXEC sp_configure 'ad hoc distributed queries', 1 
RECONFIGURE 
GO 

SELECT * FROM 
OPENROWSET('MSDASQL' 
,'Driver={Microsoft Access Text Driver (.txt, .csv)}; 
DefaultDir=C:\CSV' 
,'select * from smdr.csv') T 

,當我嘗試執行上面的腳本,然後得到錯誤

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified". Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

如何解決它....請指導我。謝謝

+0

是[這](https://blogs.msdn.microsoft.com/sqlforum/2010/12/20/faq-why-can-64-bit-msdasql -access-a-csv-text-file /)有關嗎? –

+0

這[SO問題](http://stackoverflow.com/q/5011226/243373)幫助你? –

+0

我已經看到該鏈接,但不起作用。我的環境是win7,office 2007安裝在我的電腦中。現在告訴我如何着手解決這個問題。謝謝 – Mou

回答

0

此問題已解決。這裏是細節。

SELECT * FROM OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Text;Database=C:\CSV; ', 'SELECT * FROM smdr.csv') 

錯誤:消息7403,級別16,狀態1,行31 OLE DB提供程序 「Microsoft.ACE.OLEDB.12.0」 尚未註冊。 FIX = INSTALL 「AccessDatabaseEngine_x64.exe」


EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' ,N'AllowInProcess',1 GO EXEC master.dbo.sp_MSset_oledb_prop N」 Microsoft.ACE.OLEDB.12.0' ,N'DynamicParameters',1 GO


OLE DB提供程序 「Microsoft.ACE.OLEDB.12.0」 鏈接服務器 「(空)」 返回了消息 「未指定的錯誤」 。 消息7303,級別16,狀態1,行47 無法初始化鏈接服務器「(null)」的OLE DB提供程序「Microsoft.ACE.OLEDB.12.0」的數據源對象。 FIX = EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',N'AllowInProcess',0 GO --Alternately在Sql Management Studio中轉到服務器對象 - 鏈接服務器 - 提供程序 - Microsoft.Jet。 OLEDB.4.0然後選擇並取消選中「允許進程」。 FIX =將「-g512;」添加到參數「Startup Parameters」的值的前面。


消息7399,級別16,狀態1,行57 OLE DB提供程序 「Microsoft.ACE.OLEDB.12.0」 鏈接服務器 「(空)」 報告錯誤。拒絕訪問。 Msg 7350,Level 16,State 2,Line 57 無法從鏈接服務器「(null)」的OLE DB提供程序「Microsoft.ACE.OLEDB.12.0」中獲取列信息。 FIX =更改SQL Server數據引擎從 「NT SERVICE \ MSSQLSERVER」:帳戶域帳戶訪問


相關問題