【发布时间】:2012-11-15 01:42:52
【问题描述】:
我尝试了多种方法将我的数据库从 ms access 2010 与 java 连接,但它不起作用。
我通过将属性中的路径更改为
%windir%\SysWOW64\odbcad32.exe,将 ODBC 驱动程序路径从 64 位设置为 32 位。我在本网站下载了 Microsoft Access Database Engine 2010 Redistributable for AccessDatabaseEngine_x64.exe。 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=13255
我研究了大部分网站,他们告诉我们下载数据库引擎 2010。 但是,我仍然收到此错误:
[Microsoft] [ODBC 驱动程序管理器] 指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配。
有人可以发布分步指南来解决我的问题吗?任何帮助将不胜感激。
当前源代码
private Connection con;
public void setUp(String dsn) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (Exception e) {
System.out.println("Load driver error");
} try {
String s = "jdbc:odbc:" + dsn;
con = DriverManager.getConnection(s, "", "");
} catch (Exception e) {
e.printStackTrace();
}
}
public ResultSet readRequest(String dbQuery) {
ResultSet rs = null;
try {
Statement stmt = con.createStatement();
rs = stmt.executeQuery(dbQuery);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
【问题讨论】:
-
你能告诉我们你的java代码吗?
-
私人连接骗局; public void setUp(String dsn) { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (Exception e) { System.out.println("加载驱动错误"); } 尝试 { 字符串 s = "jdbc:odbc:" + dsn; con = DriverManager.getConnection(s, "", ""); } 捕捉(异常 e){ e.printStackTrace(); } } public ResultSet readRequest(String dbQuery) { ResultSet rs = null;尝试 { 语句 stmt = con.createStatement(); rs = stmt.executeQuery(dbQuery); } 捕捉(异常 e){ e.printStackTrace(); } 返回 rs; }
-
通常您会编辑原始问题以显示源代码。我会把它放在那里,但你可能想修正格式。
-
您的 JDBC 连接位看起来很可靠,因此问题可能与 ODBC 的设置有关。不幸的是,我不是 ODBC 和 MS-Access 方面的专家...