【问题标题】:Oracle XE 64 Bit ODBC connection with 32 bit c# applicationOracle XE 64 位 ODBC 连接与 32 位 c# 应用程序
【发布时间】:2019-04-14 07:01:36
【问题描述】:

我使用 Visual Studio 2015 和 dotNet Framework 4 创建了一个 C# Windows 窗体应用程序(32 位)。 我希望该客户端可以使用 odbc dsn 连接他的数据库,无论是 32 位操作系统还是 64 位操作系统。 在 32 位操作系统上,它工作正常,但在 64 位操作系统上,它不工作,因为安装了 oracle XE 64 位。

更多详情 应用程序可以使用 ODBC 连接到任何数据源。当应用程序尝试连接安装在客户端本地系统上的 oracle XE(64 位)时,问题就出现了,因为在 32 位的情况下一切正常。所以需要在系统上安装任何额外的东西,以便 32 位应用程序可以连接到客户端计算机上安装的 oracle XE (64)?

【问题讨论】:

    标签: c# oracle odbc


    【解决方案1】:

    是的,您对此无能为力。 ODBC 驱动程序是 32 位或 64 位的,它必须与应用程序的体系结构(即 32 位或 64 位)相匹配。 Oracle 客户端也必须在同一架构中。

    我看到了三个解决方案:

    • 您提供了两个版本的应用程序。一个 32 位版本和一个 64 位版本。这两个选项提供了世界各地的许多应用程序。

    • 使用 32 位 ODBC 驱动程序创建 32 位应用程序。这样的 32 位应用程序也可以在 64 位 Windows 上运行,没有任何问题。 64 位 Windows 支持 32 位和 64 位应用程序。

    • 使用ODP.NET Managed Driver。这适用于 32 位和 64 位。但是,它不使用 ODBC DSN

    如果您喜欢独立,您可以在一台机器上同时安装 32 位和 64 位的 Oracle 客户端。关注this instruction

    【讨论】:

    • 有什么方法可以提供32位的应用程序,并为客户端提供32位的oracle odbc驱动,让他可以连接到oracle 64位的XE?
    • 这没关系。 32 位客户端可以连接到任何数据库,无论数据库是 32 位还是 64 位。当然,64 位客户端也可以连接任何数据库。只有 Oracle 客户端、ODBC 驱动程序和您的应用程序必须完全相同。
    • 客户端已经在他的系统(64位)上安装了oracle XE,它包括oracle客户端吗?客户端系统上还需要安装什么?在 32 位上一切正常
    • 是的,数据库始终包含客户端(但可能未安装 ODBC 驱动程序,需要检查)。无论如何,您有混合架构,因此客户必须按照我在回答中提供的说明在顶部安装 32 位客户端。 stackoverflow.com/questions/25216290/… 已经解决了相同的主题(使用相同的解决方案)
    • 该方法对我来说有点混乱,因为我没有在 oracle 上工作过。 Oracle XE 已经安装(x64),所以不知道 oracle 客户端是否已经安装。你能指导我使用我的场景吗?
    猜你喜欢
    • 2015-08-28
    • 2020-03-21
    • 2011-01-23
    • 2012-11-24
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多