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

Posted

技术标签:

【中文标题】例外:[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配“[重复]【英文标题】:Exception: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application " [duplicate] 【发布时间】:2014-11-24 18:38:56 【问题描述】:

当我尝试连接 MS Access (32 bit MS office) 时,我有 64 位 eclipse 并使用 64 位 jvm 配置了它,它给了我错误

Exception: [Microsoft][ODBC Driver Manager] 
The specified DSN contains an architecture mismatch between 
the Driver and Application

我还在我的 Win 7 64 位机器上的 c:\windows\sysWOW64\odbcad32.exe 中定义了 DSN,甚至在 32 位和 64 位 jvm 上都尝试过,但每次我遇到同样的错误,但是当我用 32 位 Eclipse 运行相同的代码时,它工作正常,但我必须使用 64 位 Eclipse 运行,请帮助

【问题讨论】:

【参考方案1】:

尝试使用UCanAccess 代替 JDBC-ODBC 桥接驱动程序。

UCanAccess 是纯 Java,因此使用它与 Access 数据库通信不应该有任何 32 位/64 位问题。此外,Java 8 中不再包含 JDBC-ODBC 桥驱动程序,因此如果您希望您的应用程序在 Java 8 上运行,则必须从它迁移出去。

This answer 包含有关如何设置 Eclipse 以使用它的说明。

【讨论】:

【参考方案2】:

您只能在 32 位应用程序中使用 32 位 ODBC 驱动程序。您要么需要 64 位 Access ODBC 驱动程序(如果您有 32 位 office iirc,则不可能),或者您需要切换到 32 位 Java/Eclipse。

否则,请查看the answer by Luke Woodward 以使用 UCanAccess。

【讨论】:

现在工作正常,我使用 32 位 JRE 和 32 位 ODBC,工作正常,感谢马克给了我替代方案

以上是关于例外:[Microsoft][ODBC Driver Manager] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配“[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC

odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 参数太少。预期 1.,SQLExecDirect 中的 SQL 状态 0700

odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 查询表达式中的语法错误(缺少运算符)

PHP 警告:odbc_connect():SQL 错误:[Microsoft][ODBC Microsoft Access Driver]一般错误无法打开临时注册表项(易失性)

Programmatically mount a Microsoft Virtual Hard Drive (VHD)

无法通过 odbc 连接到 Microsoft Azure 数据库