# MySQL - Anzahl Tabellen heraus finden



## ich (31. Mrz 2010)

Hallooo...ich hab ein klitzekleines Problem mit meiner Datenbank. Wie finde ich heraus wie viele Tabellen die Datenbank hat mit der ich grad verbunden bin?xD Der sql Befehl SHOW TABLES funktioniert ja nich. Ich würde sone Methode unter Connection.getMetaData() erwarten aber da is nix...dafür nen haufen Methoden die kein Mensch brauch oO
Kann mir jmd auf die Sprünge helfen?


----------



## eRaaaa (31. Mrz 2010)

ich hat gesagt.:


> Der sql Befehl SHOW TABLES funktioniert ja nich.



Mhm? Wieso?

http://www.java-forum.org/datenbank...bellen-sql-datenbank-anzeigen.html#post521894


----------



## ich (31. Mrz 2010)

Jetzt bin ich verwirrt...vorhin hat er mir gesagt er erwarte DROP, SELECT, UPDATE oder...oder...hab das letzte vergessen. Aber jetzt gehts...dann hab ich da bestimmt was falsch eingegeben ôo
Wie auch immer, danke.


----------



## ich (31. Mrz 2010)

Nein funzt nich. Hat nur ohne Fehler compiliert xD Die Fehlermeldung dabei ist:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Unzulässige SQL-Anweisung; 'DELETE', 'INSERT', 'SELECT' oder 'UPDATE' erwartet.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
	at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
	at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
	at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
	at Board.start(Board.java:490)
	at Board.run(Board.java:635)
	at java.lang.Thread.run(Thread.java:619)


----------



## eRaaaa (31. Mrz 2010)

Huch?! Welchen Treiber benutzt du da? Und ein bisschen Code / ein Beispiel wäre sicherlich auch nicht schlecht. Ich hab dir ja zumindest auch schon eins gepostet, welches bei mir ohne Probleme läuft...


----------



## ich (31. Mrz 2010)

Da ham wa den Code. Kurz und bündig:
[Java]
import java.sql.*;

public class Test {
  public static void main(String args[]) {
    try {
      String db = "datenbank.mdb";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection con = DriverManager.getConnection("jdbcdbcriver={Microsoft Access Driver (*.mdb)};DBQ=D:/" + db,"","");
      Statement stmt = con.createStatement();
      ResultSet rst = stmt.executeQuery("SHOW TABLES FROM" + db);  // hier wirft er die exception
      rst.close();
      stmt.close();
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}
[/Java]

Könnts vielleicht daran liegen, dass ich ne Microsoft Access Datanbank benutze? Wäre irgendwie seltsam...


----------



## nrg (2. Apr 2010)

dein Query würde dann heissen:
SHOW TALBES FROMdatenbank.mdb

ich hab persönlich noch nie mit Java und einer Access Datenbank gearbeitet. Aber für mich fehlt da zumindest schonmal ein Leerzeichen. Ansonsten ist mir die Dateiendung dort auch ein wenig untypisch.

Das kann ich aber jetzt so profilaktisch sagen, weil ich wie gesagt noch nie mit Java an eine mdb angedockt habe...

Nebenbei ist odbc-bridge auch nicht zu empfehlen. Sehr fehleranfällig aber das steht eigentlich in jedem Tut:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 23.3 JDBC und Datenbanktreiber

Falls du mal mir einer SQL oder Sybase arbeitest kann ich dir jTDS empfehlen:
jTDS JDBC Driver

Für Access habe ich jetzt leider keine Empfehlung aber du kannst mal hier schauen:
JDBC Drivers


----------

