公司 Win7 64 bits :
G:\Java\test>java access
java.sql.SQLException: [Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱且未指
定預設的驅動程式
DELL 筆電 Win7 32 bits :
F:\Java\test>java access
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '(unknown)' is
not a valid path. Make sure that the path name is spelled correctly and that yo
u are connected to the server on which the file resides.
在 "jdk x86_64的不能使用JDBC-ODBC吗" 這篇提到, 移除 JDK x64 版, 改安裝 JDK x86 版後就可以連接 ACCESS 資料庫了. 檢查 Java 版本確認目前是 JDK 64 位元版本 :
若不移除 JDK x64, 但加安裝 JRE x86, 然後將 PATH 設為 JRE x86 是否也可以呢 ? 下載安裝 32 位元 JRE 後, 到 "控制台/系統" 修改環境變數, 把 JAVA_HOME 變數由 JDK 改為 JRE :
測試結果還是不行, 而且 javac 變成無法執行了 (因為 JRE 只能執行 Java, 無法編譯 Java). 我把 JDK7 64 位元移除後, 下載 JDK7 X86 安裝, 結果還是一樣無效. 無解了, 打算放棄在 64 位元上存取 ACCESS.
2014-03-06 補充 :
今天下午再次測試 access.java, 驚訝地發現竟然可以耶! 差別只是下班關機而已, 難道是要重新啟動才有效嗎? 下午到樓上辦公室找到一台 32 位元 Win7, 有安裝 JRE X86, 也可以執行.
可見 Java 版本已改為 32 位元 X86, 成功地從 test.mdb 讀取資料. 資料表 users 結構如下 :
測試範例1 : http://mybidrobot.allalla.com/javatest/access-odbc.zip [ 看原始碼]
import java.sql.*;
import java.sql.SQLException;
import java.sql.ResultSet;
public class access {
public static void main(String[] args) {
try {
ResultSet rs = null;
Connection conn = null;
Statement stat = null;
String strSql = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String db="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};" +
"DBQ=test.mdb;DriverID=22;READONLY=false}";
conn = DriverManager.getConnection(db ,"","");
stat = conn.createStatement();
try {
strSql = "select top 10 * from users";
rs = stat.executeQuery(strSql);
while (rs.next()){
System.out.println(rs.getString("name"));
}
}
catch (SQLException e) {System.out.println(e);}
catch (NullPointerException e) {System.out.println(e); }
catch (Exception e) {System.out.println(e);}
}
catch(Exception e) {System.out.println(e);}
}
}
C:\Program Files\Java\jdk1.7.0_40
C:\Program Files (x86)\Java\jdk1.7.0_51
C:\Program Files (x86)\Java\jre7
# [Java EE]Win7 64位元JSP連Access解決方法
# Java MS Access Connection
# jdk x86_64的不能使用JDBC-ODBC吗
# Java Essence: 你執行的是哪個 JRE?
# 在win7及java 64bits 環境下 使用 JSP 連接 ACCESS (試過無效)
# Windows7(64bit) ODBC Access Driver 連結設定
沒有留言:
張貼留言