Redshift ODBC 64 位驱动程序错误

Posted

技术标签:

【中文标题】Redshift ODBC 64 位驱动程序错误【英文标题】:Redshift ODBC 64-bit driver error 【发布时间】:2017-06-24 19:24:22 【问题描述】:

我的系统同时安装了 32 位和 64 位 Redshift ODBC 驱动程序。它显示在 System DSN 选项卡下的 ODBC 数据源 中。但是,驱动程序选项卡中仅显示 32 位驱动程序。

此外,当我尝试通过在连接字符串 Driver=Amazon Redshift (x64) 中指定 64 位来建立 Redshift 连接时,我收到以下错误:“ERROR [ IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序”。

似乎只有连接字符串中的以下内容有效Driver=Amazon Redshift (x86)

我试过了

    重新安装并修复 64 位驱动程序。 从 系统 DSN 选项卡中删除 32 位驱动程序

但似乎没有任何工作。

我错过了什么吗?

【问题讨论】:

【参考方案1】:

我们在公司的 ASP.NET 应用程序中使用 Amazon Redshift 驱动程序时遇到了同样的问题。

如果您还在 ASP.NET 应用程序中使用 Amazon Redshift 驱动程序,我希望我们的发现(困难的方法)可能对您有所帮助。

如果您使用 64 位 IIS 运行应用程序,则该问题的解决方案是使用 64 位驱动程序,如果您使用 32 位 IIS,则使用 32 位驱动程序。让我们措手不及的是,即使在运行 64 位 Visual Studio 的 64 位机器上,默认的 IIS 也是 32 位,而不是 64 位。 (https://www.jc-tech.info/2016/09/24/running-32-bit-or-64-bit-iis-express/)

这解释了为什么您的应用程序只能找到 32 位驱动程序。关于为什么 64 位驱动程序没有出现在 ODBC 数据源管理器的驱动程序选项卡中,实际上有 2 个版本的 ODBC 管理器:32 位版本和 64 位版本。 64 位驱动程序只会显示在 64 位 ODBC 管理器中。

在调试您的应用程序时,如果您想确保 Visual Studio 使用的是 64 位 IIS,请转到工具>选项>项目和解决方案>Web 项目,然后勾选“使用 64 位版本的 IIS Express " 复选框。

同样,当您部署应用程序时,请确保您的驱动程序版本(32 位或 64 位)与您的生产环境的版本相匹配。

【讨论】:

【参考方案2】:

遇到同样的问题,

我只保留了 32 位驱动程序并卸载了 64 位,然后我把 驱动程序=Amazon Redshift (x86)。 效果很好。

更多信息可以从下面的链接中找到。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/480db31c-b583-4c22-a7eb-bc37ad3a3e6d/data-source-name-not-found-and-no-default-driver-specified-error-in-report-builder-when-adding-an?forum=sqlreportingservices

【讨论】:

【参考方案3】:

如果您正在构建 .NET 应用程序,请检查项目属性中的 Build 选项以针对 x64 平台,而不是使用 Any CPU 选项以针对所有平台

【讨论】:

以上是关于Redshift ODBC 64 位驱动程序错误的主要内容,如果未能解决你的问题,请参考以下文章

ODBC 调用失败 - 从 32 位 ODBC 5.1 移动到 64 位 5.3 后出现随机日期溢出错误

32 位和 64 位 ODBC 驱动程序之间的体系结构不匹配

MS Access 的 ODBC 驱动程序似乎丢失(Windows 64 位)

为啥明明安装了mysql的odbc驱动,却老是提示系统错误126

odbc驱动程序SQORA32.DLL可能是32位还是64位?

将 64 位 Java 应用程序连接到 32 位 ODBC 驱动程序