我一直在四处寻找修复,但我找不到它。
基本上我在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
感谢所有的大师们。也许你的知识可以提供帮助。
答案 0 :(得分:0)
好的我发现它,我需要2个“Temp”文件夹才能访问我的SQL用户。一个位于windows microsoft sql server文件夹中,另一个位于我自己的用户中。确保将它们设置为“完全控制”,否则它将无法工作。