1
.accdbデータベース(2007-2016フォーマット)のすべてのテーブルのリストを取得しようとしています。 MSysObjectsテーブルが見つからないようです。使用UCanAccessデータベースのテーブルを一覧表示する
sql = "SELECT Name FROM MSysObjects WHERE Type = 1 AND Flags = 0";
ResultSet rs = queryChem(sql);
public static ResultSet queryChem(String sql) throws SQLException {
Statement sChem = connChem.createStatement();
ResultSet rsChem = sChem.executeQuery(sql);
return rsChem;
}
private static void connectChem() {
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
System.out.println("Driver loaded");
String url = "jdbc:ucanaccess://chemdb.accdb";
connChem = DriverManager.getConnection(url);
System.out.println("Database Connected - CHEMS");
} catch (Exception ex) {
System.out.println("Error");
}
}
net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc ::: 3.0.6ユーザーが権限を持たないか、オブジェクトが見つかりません:net.ucanaccess.jdbc.UcanaccessStatement.executeQueryでMSYSOBJECTS (UcanaccessStatement.java:211 )
おかげ 正確なコードは RS = connChem.getMetaData()だったのgetTables(NULL、NULL、 "%" は、null)。 while(rs.next()){ String id = rs.getString(3); } – Matt