我需要将SSRS报告部署到本地主机的帮助,该报告使用ODBC数据源从excel文件中检索数据。
通过BIDS 2008预览相同的报告时,它将按预期显示结果。但是,将报表部署到运行BIDS的同一台计算机(本地主机)上的报表服务器后,会出现以下错误。

错误:引发Microsoft.ReportingServices.ReportProcessing.ReportProcessingException :、 Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:无法创建与数据源“dsInvoice”的连接。 ---> System.Data.Odbc.OdbcException:错误[IM002] [Microsoft] [ODBC驱动程序管理器]找不到数据源名称,也未指定默认驱动程序

我尝试了共享数据源以及自定义数据源,但是两者均无效。当我查找此错误时,它提到我需要在%windir%\SysWOW64\odbcad32.exe 下使用 32位ODBC管理器工具,这是我正在使用的工具,但那也没有用。我是本地计算机上的管理员。

以下是有关机器的一些信息:

  • Windows 7 64位
  • SQL Server 2008 R2的
  • Office 2010 32位

  • 重现该错误的步骤:
  • %windir%\SysWOW64\odbcad32.exe下创建Microsoft Excel驱动程序用户DSN-Test_Excel_Driver-
  • 使用BIDS 2008创建SSRS报告,并选择具有以下连接字符串的数据源作为ODBC嵌入式连接-Dsn = Test_Excel_Driver; dbq = C:... Test Excel.xlsx; defaultdir = C:...\; driverid = 1046 ; fil = excel 12.0; maxbuffersize = 2048; pagetimeout = 5
  • 在BIDS中预览报告-工作正常!
  • 以完全权限将报告部署到localhost SSRS报告服务器。单击报表管理器中的报表,并得到上述错误。
  • 最佳答案

    首先使用OLEDB代替ODBC会更容易,OLEDB的连接字符串如下所示:

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;
    Extended Properties="Excel 12.0 Xml;HDR=YES";
    

    然后,在SSRS/BIDS中,当您在“数据源”屏幕中单击“测试连接”时,您可能会看到此错误:



    该文档指出MS Access驱动程序(包括OLEDB驱动程序)在x86平台上工作,并且在x64或AnyCPU平台下不兼容。但是,这似乎是不正确的。引用:https://stackoverflow.com/a/32760211/495455

    首先下载安装程序,确保您在上打勾_64.exe 版本:http://www.microsoft.com/en-us/download/details.aspx?id=13255
  • 将AccessDatabaseEngine_x64.exe提取到一个文件夹中,以获取AceRedist.msi和Data.cab文件。
  • 以管理员方式打开命令提示符
  • cd到您提取下载文件的文件夹,并使用被动参数
  • 执行MSI
    AceRedist.msi /passive
    完成这些步骤之后,在以x64或AnyCPU构建配置进行构建之后,我设法运行了该应用程序(以及没有BIDS的SSRS)。这解决了问题。

    关于sql-server-2008 - SSRS-将报表部署到localhost报表服务器时,Excel数据源错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42940249/

    10-09 22:20
    查看更多