解决W7下找不到ODBC在64位客户端使用32位的ODBC配置
-
资源ID:18668072
资源大小:190.57KB
全文页数:5页
- 资源格式: DOCX
下载积分:10金贝
快捷下载
![游客一键下载](/images/hot.gif)
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
解决W7下找不到ODBC在64位客户端使用32位的ODBC配置
这个场景比较特殊,是一个客户遇到的问题触发我写的这篇文章。 数据库服务器通常安装的都是 64 位的操作系统和 64 位的数据库 软件。客户端使用的操作系统和客户端程序复杂度远比服务器要多很多,安装的客户端操作系统既可能是 32 位,也可能是 64 位,在 32 位的操作系统只能安装 32 位的数据库客户端软件。在 64 位的客户端操作系统可以安装 32 位和 64 位的数据库客户端软件,但是如果客户端使用 pl/sql,那么只能安装 32 位的 Oracle 数据库客户端(pl/sql 不支持 64 位的 Oracle 客户端),如果开发的软件只支持 32 位平台的,那么在 64 位的客户端操作系统可能也只能安装 32 位的 Oracle 数据库客户端软件,通过 32 位的 Oracle 数据库客户端软件连接到 64 位的数据库。这个项目要实现这样一个目的,开发的 Java 程序(C/S 架构)只支持 32位,那么必须通过配置 32 位的 ODBC(必须安装 32 位的 Oracle 客户端,开发的 Java 程序无法加载 64 位的 Oracle 数据库客户端驱动)连接到 64 位的数据库环境,该程序必须确保在 32 位的客户端和 64 位的客户端操作系统都能正常使用,32 位的客户端下运行是没问题的,这里讨论的就是在 64 位客户端下运行,通过 32 位 ODBC 连接数据库遇到的问题。讨论场景的服务器、客户端配置如下:服务器操作系统:Redhat Enterprise 5.4 x86_64bit数据库服务器:Oracle 11gR2 RAC Database 64bit客户端:Win7 旗舰版 x86_64bitOracle Database 客户端:Oracle 11gR2 Database x86Java JDK:jdk-6u31-windows-i586下面对遇到的问题及解决方法进行讨论:1.数据库支持的操作系统版本。数据库运行在 Linux 环境,客户端都运行在 Windows 平台,首先明确 Oracle 数据库支持的 Windows 平台。从上面的文档中可以看出 Oracle 的 11gR2 数据库产品是完全支持 Windows7 的专业版、 企业版和旗舰版,所以在这样的平台安装数据库和客户端都是没有问题的。2.安装 32 位的 Oracle Database 客户端软件。 在 win7 64bit 的客户端安装 32 位的 Oracle Database 客户端软件,安装后准备配置 ODBC 的时候发现一个问题,通过传统的控制面板 ->ODBC 管理器->创建 ODBC 数据源的方式无法找到相应的 Oracle Database 驱动程序,如下图所示。从上图可以看出没有 Oracle Database 的驱动程序。3.打开加载 32 位驱动程序的 ODBC 管理器。通过传统的方式之所以无法找到 Oracle Database 驱动程序,原因在于平台是 64 位,但安装的是 32 位的 Oracle Database 软件,常规的 ODBC 管理器不会加载 32 位的驱动程序。通过执行 C:WindowsSysWOW64odbcad32.exe 程序可以打开加载 32 位驱动程序的 ODBC 管理器,如下图所示。上图中的"Oracle in OraDb11g_home1"即使 32 位的客户端驱动程序。4.创建连接数据库的 ODBC 数据源。如下图所示,创建连接到数据库的 ODBC 数据源。5.准备测试环境。使用 JCreator 运行一段通过配置的 ODBC 连接数据库的代码,确保编译和执行 Java 代码使用的是 32 位的 JDK,执行的代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class Java_Odbc_Sql private static final String drivename="sun.jdbc.odbc.JdbcOdbcDriver"private static final String url="jdbc:odbc:testodbc;user=system;password=oracle" ;public static void getCon() throws Exceptiontry Class.forName(drivename);/在 JVM 中注册 JDBC 驱动程序SuppressWarnings("unused")Connection con=DriverManager.getConnection(url);/建立到 DBMS 的连接 catch (SQLException e) System.err.println(e.getMessage();throw e;catch (Exception e) System.err.println(e.getMessage();throw e;/* 连接测试* param agrs*/public static void main(String agrs)trygetCon();System.out.println("连接成功!"); catch(Exception e)System.out.println("连接失败!");e.printStackTrace();6.运行测试代码。 执行上面的测试代码,发现使用 32 位的 JDK 通过配置的 testodbc 数据源(32 位的驱动程序)能够正常的连接到 64 位的数据库,如下图所示。这个场景并不完全真实,只是我个人的一个联想和猜测,中间极有可能出现不正确或不完整的表述。