2016-11-09 205 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”:帐户域帐户访问


相关问题