提供商' MICROSOFT.ACE.OLEDB.12.0'从ASPX页面执行存储过程时被拒绝

时间:2015-10-13 20:09:11

标签: asp.net sql-server excel import

我一直在四处寻找修复,但我找不到它。

基本上我在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用户访问SQL Server的临时文件夹。

我已经在圈子里跑了一段时间......这里是在管理工作室内运行良好的相关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

感谢所有的大师们。也许你的知识可以提供帮助。

1 个答案:

答案 0 :(得分:0)

好的我发现它,我需要2个“Temp”文件夹才能访问我的SQL用户。一个位于windows microsoft sql server文件夹中,另一个位于我自己的用户中。确保将它们设置为“完全控制”,否则它将无法工作。