指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配错误

Posted

技术标签:

【中文标题】指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配错误【英文标题】:The specified DSN contains an architecture mismatch between the Driver and Application error 【发布时间】:2013-06-02 00:24:42 【问题描述】:

因此,我已经进行了数小时的反复试验和研究,试图弄清楚这个错误的含义。据我所知,这是由 ODBC 驱动程序和 Microsoft Access 的位架构之间的差异引起的(我正在尝试与 Java 连接)。 MS Access 是一个 32 位程序,所以我使用 SysWOW64 odbcad32.exe 创建 DSN。这是我用于连接的 Java 代码:

String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:bukkitdb";
String username = "root";
String password = "root";

try 
    Class.forName(driver);
 catch (ClassNotFoundException e) 
    Bukkit.broadcastMessage("ClassNotFoundException");


try 
    Connection conn = DriverManager.getConnection(url, username, password);
 catch (SQLException e) 
    Bukkit.broadcastMessage(e.getMessage());

我看过很多关于如何创建这些连接的教程和示例。我几乎可以肯定这段代码没有任何重大缺陷。运行时,e.getMessage() 将标题中的 SQLException 发送到控制台:指定的 DSN 包含 Driver 和 Application 之间的架构不匹配。

如果能帮助我弄清楚我能做些什么来解决这个问题,我们将不胜感激;我今天浪费了很多时间试图弄清楚这一点。

【问题讨论】:

【参考方案1】:

不幸的是,您需要在 32 位 JVM 上运行您的应用程序才能避免这种情况。 ODBC 驱动程序架构必须与 JRE 的架构相匹配。

这里有一些关于运行 32 位 JRE 的信息:Running 32bit JRE on a 64bit windows 2008R2 server

【讨论】:

以上是关于指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配错误的主要内容,如果未能解决你的问题,请参考以下文章

指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配。 JAVA

例外:[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配“[重复]

指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

windows 2008 64位在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

QODBC连接字符串