32位ODBC驱动程序连接到64位数据库

时间:2014-06-06 19:40:37

标签: c++ sql-server oracle db2 odbc

为了通过ODBC从32位软件连接到64位数据库(Oracle / DB2 / Postgresql / SQL Server),我是否需要32位数据库客户端或只需要32位ODBC驱动程序就足够了。

作为Oracle的一个例子,当我安装Oracle Server时,32位ODBC管理器不一定有Oracle的条目,因为32位ODBC驱动程序不存在。为了连接,我必须安装32位Oracle客户端,之后我可以看到一个ODBC条目。

所以我的问题是,为了从32位应用程序连接到64位数据库,我是否需要32位数据库客户端(瘦/完)或者只是存在可以安装到的32位ODBC驱动程序建立联系。

3 个答案:

答案 0 :(得分:2)

您使用的客户端取决于您使用的客户端计算机的体系结构,而不是服务器。

IIRC,使用Oracle,您需要安装客户端和ODBC驱动程序。客户端实际上处理与数据库的连接,而ODBC层将ODBC说话转换为客户端理解的内容。

我认为其他平台是相似的,尽管有些数据库可能提供可以同时安装客户端和ODBC驱动程序的统一客户端安装程序。

使用ODBC时,使用与客户端应用程序匹配的ODBC体系结构非常重要。例如,如果您使用的是x86 Access,则需要32位ODBC驱动程序和客户端。

答案 1 :(得分:0)

当我设置SQL链接服务器到Oracle时,我安装了:

  • Net Configuration Assistant
  • 网络管理员
  • ODBC驱动程序
  • OLE驱动程序

驱动程序架构应与机器架构相匹配。在我的情况下它是64位Windows Server,所以我使用了64位驱动程序(win64_11gR2_client.zip)。

然后我运行了Net Config。助手并设置oracle配置(主机/端口/用户/传递/服务名称)。确保在此处通过连接测试。这将配置您的tnsnames.ora文件(%path%\ product \ 11.2.0 \ client_1 \ network \ admin \ tnsnames.ora)

如果无法连接,请查看sqlnet.ora文件。在成功连接之前,我不得不改变我的阅读SQLNET.AUTHENTICATION_SERVICES= (NONE)

然后我运行ODBC以使用Net Config中的相同名称设置来设置系统DSN。助手。

答案 2 :(得分:0)

以下内容对Oracle有效,我不知道它是否也适用于其他RDBMS。

数据库服务器和客户端彼此独立,即您可以将32位Oracle客户端连接到64位Oracle数据库服务器。

但是ODBC-Driver和Oracle Client的体系结构必须匹配,即32位ODBC驱动程序仅适用于32位Oracle客户端,64位ODBC驱动程序需要64位Oracle客户端。此限制也适用于其他提供程序,如OLE DB或ODP。

当然,64位Oracle客户端需要64位Windows。在64位Windows上安装32位Oracle客户端是没有问题的。

也可以在同一台计算机上安装32位和64位Oracle客户端(以及两种ODBC驱动程序的体系结构)。但是,你必须做一些“技巧”才能使它们无缝地工作。