首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 64位JDBC-ODBC驱动程序问题

Java 64位JDBC-ODBC驱动程序问题
EN

Stack Overflow用户
提问于 2012-03-03 00:20:36
回答 1查看 6.5K关注 0票数 5

我有一个程序,当使用32位JVM编译时,它工作得很好,但如果我尝试使用64位JVM,就会出现问题。我得到的信息是:"[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

我正在尝试使用如下代码连接到Excel和SQL Server数据库:

代码语言:javascript
复制
String file = directory + "/fileName.xlsm";

String connectStr= "jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ="  + file +  ";READONLY=false";

try {
    Class.forName(getDriver());
    gConnection = DriverManager.getConnection(connectStr);
    //do stuff with connection
}

当我尝试检查驱动程序管理器时,它似乎没有64位版本的驱动程序。有什么方法可以轻松修复这个问题,并能够使用64位驱动程序连接,而不需要手动更改计算机上的设置(因为这个程序将分布在多台计算机上,我不想为想要运行它的每台计算机单独下载驱动程序)?此外,使用64位驱动程序连接是否更有效率,或者32位驱动程序是否同样好/快(我确实有非常大的数据集,所以很小的差异将产生影响)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-08 12:56:16

64位应用程序不能使用32位ODBC驱动程序,反之亦然,这就是您收到该错误消息的原因。您可以通过分别运行32位(C:\Windows\SysWow64\odbcad32.exe)和64位(C:\Windows\System32\odbcad32.exe) ODBC数据源管理器(“驱动程序”选项卡)来验证可用的ODBC驱动程序-当然是在64位系统上。命名一开始是令人困惑的。

我使用的一个应用程序也有类似的问题-- Access/Excel ODBC驱动程序是32位的,这意味着当在64位环境下运行时,我们的应用程序不能处理打开Excel或Access数据库文件。我们最终转而使用Apache POI library,这是一个可以直接读/写Excel和其他Office文档的Java库。您可能会考虑尝试一下,尽管切换会涉及到一些工作。

当时,Office 2010还没有发布。我没有意识到他们在Office 2010中创建了一个64位ODBC驱动程序,现在必须看看这是否是一个合法的选择……即使是这样,我也不喜欢在Java应用程序中依赖ODBC。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9536694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档