【发布时间】:2019-06-03 22:01:14
【问题描述】:
我在尝试使用 PostgreSQL 10 设置 SSRS 时遇到了困难。无论我尝试了什么,我总是以“指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配”结束。
我已阅读所有内容都必须匹配,32 位与 64 位。然而,现代 Visual Studio 仅提供 32 个,而现代 SQL 服务器(报表服务器必需)仅提供 64 个。我不确定 Report builder 3 是什么,但它也不起作用。我已经尝试了 32 和 64 的 ODBC DSN,两种类型的单独的特定名称和相同的名称,似乎没有任何区别。
带有 SSDT 的 Visual Studio 2017 将在构建器中预览报告,但在浏览器中运行时出现错误(架构不匹配错误)。报告生成器也根本不会运行报告,即使它声称与数据库的连接是成功的。
所以在找到过去十年的过时答案后,也许最好把它放在标题中。如果您要使用 postgreSQL 设置最现代的 SSRS 设置,您将使用哪些版本的工具来开发/测试/部署报告?
【问题讨论】:
-
您在SSRS服务器上安装了64位驱动程序吗? 一些 供应商驱动程序不允许您同时使用 64 位和 32 位。大多数供应商的驱动程序在 32 位和 64 位之间有不同的“驱动程序名称”。典型的安装是:在开发机器和服务器机器上安装 32 位和 64 位驱动程序。您能否确保两者都已安装,然后使用两个版本的 ODBCAD32.EXE(32 位和 64 位版本),转到驱动程序选项卡并确认驱动程序名称是什么?
-
这个connectionstrings.com/postgresql 似乎表明驱动程序名称在 32 位 64 位版本之间可能相同。在页面的示例中,驱动程序名称例如为
{PostgreSQL}、{PostgreSQL UNICODE}、{PostgreSQL ANSI} -
我一直在 ODBC 管理员(32 位和 64 位版本)中创建系统 DSN,然后我将引用连接字符串的 dsns。系统 DSN 看起来像是在引用适当的驱动程序,64 位正在查看“PostgreSQL Unicode(x64)”和 32 位版本“PostgreSQL Unicode”。允许您“测试连接”的过程的大多数各个部分确实报告了成功的连接,但是然后继续前进并实际运行报告存在我上面提到的问题。
-
应该可以(但显然不行!)。我假设 SSRS 服务器和开发工具在同一台主机上?您可以尝试使用无 DSN 连接字符串,这样您将显式引用 64 位驱动程序(而不是引用它的 DSN)
-
这是我找到的指南 - 我相信您已经完成了所有这些,但用细齿梳子仔细阅读它不会有什么坏处。 blog.i-m-code.com/2013/06/03/…
标签: visual-studio reporting-services postgresql-10 ssrs-2016