我得到一个例外“无法初始化OLE DB提供程序的数据源对象”Microsoft.ACE.OLEDB.12.0“for linked server”(null)“。”通过VB前端运行我的存储过程时。通过SSMS运行时,该过程正常。最初我通过SSMS运行程序时遇到了同样的错误,但是作为管理员运行SSMS使其工作,然后关闭UAC允许我运行该过程而不用SSMS作为管理员运行。
我已将我的帐户的完全控制权限添加到C:\ Users \ MSSQL $ ServerInstance \ AppData \ Local
我将“Microsoft.Ace.OLEDB.12.0”作为链接服务器下的提供程序,并启用了“动态参数”和“允许进程”。
我还启用了“显示高级选项”和“Ad Hoc Distributed Queries”。
感谢您的帮助。
以下是相关程序的一部分
Set @sql = 'INSERT INTO TempTbl ( [Items] )
SELECT [Items]
FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
''Excel 12.0 Xml;
Database='+@path+';HDR=YES'',
''SELECT [Items] FROM ['+@sheet+'$]'');'
Exec(@sql)