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

3
为了从32位软件通过ODBC连接到64位数据库(Oracle / DB2 / Postgresql/ SQL Server),我需要32位数据库客户端还是只需要32位ODBC驱动程序即可。
以Oracle为例,当我安装Oracle Server时,32位的ODBC管理员没有Oracle的条目,因为32位的ODBC驱动程序不存在。为了连接,我必须安装32位的Oracle客户端,然后才能看到ODBC条目。
所以我的问题是,为了从32位应用程序连接到64位数据库,我需要32位数据库客户端(thin/full)还是存在可以安装以建立连接的32位ODBC驱动程序。
3个回答

3
你使用的客户端取决于你所使用的客户端机器的架构,而不是服务器。
据我所知,在使用Oracle时,您需要安装客户端和ODBC驱动程序。客户端实际上处理与数据库的连接,而ODBC层将ODBC-speak转换为客户端可以理解的内容。
我假设其他平台类似,尽管有些数据库可能提供一个统一的客户端安装程序,可以同时安装客户端和ODBC驱动程序。
在使用ODBC时,重要的是要使用与您的客户端应用程序匹配的ODBC架构。例如,如果您正在使用x86 Access,则需要32位ODBC驱动程序和客户端。

虽然我已经理解了你的答案的要点,但我可能不同意你的陈述“取决于客户端机器的架构”。例如,32位客户端可以安装在64位机器上。此外,如果您能在答案中提供更多详细信息(如参考资料),那将是值得的。 - Abhijit
@Abhijit 您是正确的,但原始问题是服务器架构是否决定了应安装哪个客户端。一旦您开始谈论ODBC,正确的答案很可能更依赖于使用ODBC的应用程序。 - Baldy
我认为OP的问题的要点是:“为了从32位应用程序连接到64位数据库,我需要32位数据库客户端(thin/full),还是只需安装32位ODBC驱动程序即可建立连接?” - Abhijit
答案是正确的。只要32位和64位的适当驱动程序版本可用,那么你最好的选择通常是匹配客户端的模式,也就是你正在运行驱动程序的地方。但请确保你的驱动程序支持服务器软件的版本。例如,如果你连接到运行DB2 LUW 10.1的服务器,请不要尝试使用DB2 LUW 9.1的驱动程序。 - WarrenT

0

当我设置SQL Linked Server到Oracle时,我安装了以下内容:

  • Net Configuration Assistant
  • Net Manager
  • ODBC Driver
  • OLE Driver

驱动程序架构应该与机器架构匹配。在我的情况下,是64位Windows服务器,因此我使用了64位驱动程序(win64_11gR2_client.zip)。

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

如果无法连接,请查看sqlnet.ora文件。在成功连接之前,我必须修改我的文件以读取SQLNET.AUTHENTICATION_SERVICES=(NONE)

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


在我的情况下,我使用的是64位Windows服务器,所以我使用了64位驱动程序。那么您的意思是32位驱动程序不能安装在64位机器上?我认为ODBC驱动程序不是内核驱动程序,因此没有限制。 - Abhijit
我认为你可以这样做,只是在64位机器上,它们将显示在32位ODBC面板而不是主要的ODBC面板中。我理解你的痛苦,安装Oracle花费了我数小时,进行了多次安装/卸载,我尝试了32位和64位。如果你最终需要卸载,有一个由Oracle提供的卸载程序--强烈建议下载--不要只使用控制面板中的添加/删除图标--它会在系统中留下很多垃圾文件。 - Dave C
请注意,卸载程序为win64_11gR2_deinstall.zip,您可以在Oracle网站上找到它。 - Dave C

0

以下内容适用于Oracle,我不知道它是否也适用于其他关系型数据库管理系统。

数据库服务器和客户端是相互独立的,即您可以使用32位Oracle客户端连接到64位Oracle数据库服务器。

但是,ODBC驱动程序和Oracle客户端的架构必须匹配,即32位ODBC驱动程序仅与32位Oracle客户端配合使用,64位ODBC驱动程序需要64位Oracle客户端。这个限制也适用于其他提供程序,如OLE DB或ODP。

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

还可以在同一台机器上安装32位和64位Oracle客户端(因此也有ODBC驱动程序的两种架构)。但是,您必须进行一些“技巧”才能使它们同时无缝工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接