SSRS与32位和64位ODBC驱动程序有关

时间:2016-09-01 21:13:13

标签: reporting-services sql-server-2008-r2 odbc ssrs-2008-r2 reportbuilder3.0

最终目标是让用户能够运行看起来漂亮的报告并从我们的数据库中获取当前信息。我们想使用SQL Report Builder,因为我们已经将它用于其他报告。该数据库是Cisco UCCX,我们通过报告服务SQL Server 2008 R2的ODBC连接访问它。

我们已经成功设置了64位和32位驱动程序的系统ODBC连接。在尝试访问连接时,我们收到错误。

使用32位驱动程序,我们尝试在SSRS中创建数据源以供Report Builder使用并收到错误:

  

“错误[IM014] [Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配”

使用64位驱动程序,我们可以成功地创建和测试ODBC连接作为数据源,但是当我们尝试在报表生成器中使用它创建数据集时,我们会收到此错误:

  

错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

Error received using the 64bit driver for ODBC connection

1 个答案:

答案 0 :(得分:0)

可能在Windows注册表中遇到轻微损坏的旧但反复出现的问题。

腐败采用包含这个4个字符的字符串的条目形式 -

@=""  

除了注册表导出文件之外的任何地方都看不到这些条目 - 注册表编辑器完全忽略它们 - 但它们可能会导致许多不良行为,包括您报告的错误。

注意:在64位Windows计算机上,自然会出现一些与32位注册表相关的复杂问题。 This Microsoft KB article可能足以让您完成这些工作。

我建议您使用64位注册表编辑器(%systemroot%\system32\regedit)导出以下分支(往往会找到这些有问题的条目) -

HKEY_LOCAL_MACHINE\Software\ODBC
HKEY_CURRENT_USER\Software\ODBC
HKEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC
HKEY_CURRENT_USER\Software\WOW6432Node\ODBC

在任何文本编辑器中编辑这些文件(记事本或写字板通常都很好),并删除上面包含该4个字符的字符串的所有行。然后,删除导出的注册表树段,并从编辑的文件导入 - 从而恢复树段,减去损坏。

使用32位注册表编辑器(%systemroot%\syswow64\regedit)重复上述过程并不会有什么坏处,但正如您所描述的那样,我认为您不会找到任何{{1在32位导出中。