例外:[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]一般错误无法打开临时注册表项(易失性)