Hallo,
ich möchte mit Java auf meine bestehende OpenOfficeDatenbank zugreifen.
Prinzipiell scheint mir der Code richtig.
Mein Problem ist nun:
In meiner Datenbank myvitals.odb befinden sich 2 Tabellen. Eine davon heist 'parameters'.
Wenn ich nun einen 'select' ausführe um Daten abzufragen, findet er die Tabellen nicht.
Er scheint auch die Datenbank erst garnicht zu finden, obwohl sie richtig angegeben ist.
Selbst wenn ich den Datenbanknamen falsch schreibe kommt der gleiche Fehler.
Automatisch werden dazu 3 Dateien vom Treiber im Verzeichnis der Datenbank erstellt.
Egal ob ich die Datenbank mit "myvitals.odb", "xxmyvitals.odb", "myvitalsxx.odb" oder nur "myvitals" im Code angebe, lauten die 3 Dateien immer gleich :
myvitals.log, myvitals.properties, myvitals.script
mfg Ignus
ich möchte mit Java auf meine bestehende OpenOfficeDatenbank zugreifen.
Code:
public void test(){
try{
try
{
Class.forName("org.hsqldb.jdbcDriver");
System.out.println("Driver loaded...");
}
catch(Exception e){System.out.println("Failed to load hsql driver.");return; }
Connection conn;
PreparedStatement preSt;
String dbname;
String sql;
ResultSet rsA;
sql = "select * from parameters";
dbname = "D:/MyFiles/EigeneDateien/Vita/myvitals";
//conn = DriverManager.getConnection("jdbc:hsqldb:file:" + dbName,"sa","");
try{
conn = DriverManager.getConnection("jdbc:hsqldb:file:D:/MyFiles/EigeneDateien/Vita/myvitals","sa","");
DatabaseMetaData metaData = conn.getMetaData();
// Get schema information
System.out.println("Schemas");
ResultSet schemas = metaData.getSchemas();
while (schemas.next()) {
System.out.println(schemas.getString(1));
}
// Get table information
System.out.println("Tables");
ResultSet tables = metaData.getTables("", "", "", null);
while (tables.next()) {
System.out.println(tables.getString(3));
}
/*
preSt = conn.prepareStatement(sql);
preSt.executeQuery();
rsA = preSt.executeQuery();
while (rsA.next()){
System.out.println(rsA.getRow() + " -- " + rsA.getString(2) + " -- " + rsA.getString(3));
};
rsA.close();
preSt.close();
*/
conn.close();
}catch(Exception e){e.printStackTrace();}
}catch (Exception e) {e.printStackTrace();};
}
Prinzipiell scheint mir der Code richtig.
Mein Problem ist nun:
In meiner Datenbank myvitals.odb befinden sich 2 Tabellen. Eine davon heist 'parameters'.
Wenn ich nun einen 'select' ausführe um Daten abzufragen, findet er die Tabellen nicht.
Er scheint auch die Datenbank erst garnicht zu finden, obwohl sie richtig angegeben ist.
Selbst wenn ich den Datenbanknamen falsch schreibe kommt der gleiche Fehler.
java.sql.SQLException: Table not found in statement [select * from parameters]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at input.test(input.java:66)
at input.<init>(input.java:28)
at input.main(input.java:103)
Automatisch werden dazu 3 Dateien vom Treiber im Verzeichnis der Datenbank erstellt.
Egal ob ich die Datenbank mit "myvitals.odb", "xxmyvitals.odb", "myvitalsxx.odb" oder nur "myvitals" im Code angebe, lauten die 3 Dateien immer gleich :
myvitals.log, myvitals.properties, myvitals.script
mfg Ignus