gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 00:52:17 26 4
gpt4 key购买 nike

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

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

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 位驱动程序同样好/快(我确实有非常大的数据集,所以微小的差异会有所不同)?

最佳答案

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。

关于Java 64 位 JDBC-ODBC 驱动程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com