【发布时间】:2016-01-11 17:42:50
【问题描述】:
我一直在四处寻找解决方法,但找不到。
基本上,我在 sql server 中设置了一个将 excel 文件读入表的存储过程。我设法让它在 SQL Server Management Studio 中工作。但是当我尝试在网页中执行它时,我得到了错误:
已获得对 OLE DB 提供程序“MICROSOFT.ACE.OLEDB.12.0”的临时访问权限 否认。您必须通过链接服务器访问此提供程序。
我尝试过的方法包括运行以下命令:
sp_configure 'Show Advanced Options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
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
我还尝试将 SQL Server 的临时文件夹的访问权限授予我的 SQL 用户。
我已经在圈子里跑了一段时间......这是在管理工作室中运行良好的相关 SQL 代码:
set @q = 'INSERT INTO #RDV_BUFFER (noDossier,RDVDate,Facturation,debut,fin,debutreel,finreel,MinutesParUnites) SELECT nodos, daterdv, montfact, heuredebut, heurefin,heureassis,heureleve,horstep FROM OPENROWSET(''MICROSOFT.ACE.OLEDB.12.0'',''Excel 8.0; Database=C:\inetpub\wwwroot\ProDentaireElite\XLS_Root\' + @URL + '; HDR=YES; IMEX=1'', ''SELECT * FROM [' + @Sheetname + '$]'')'
EXEC sp_executesql @q
感谢所有的大师。也许您的知识可以提供帮助。
【问题讨论】:
-
附加信息:我正在运行 Windows 10,安装了 Office 2010 (x64),sql server 也是 x64 和版本 12
-
以下关于 DBA 的帖子建议您还需要更改注册表设置:dba.stackexchange.com/questions/61739/…
-
谢谢!我在注册表中手动添加了密钥,现在出现新错误:无法初始化 OLE DB 提供程序“MICROSOFT.ACE.OLEDB.12.0”的数据源对象
标签: asp.net sql-server excel import