Zum Inhalt springen

DatabaseMetaData getColumns


Empfohlene Beiträge

Geschrieben

Hi leute.

Ich will in meinem Programm die Spalten einer Tabelle auslesen.

Um Tabellen auszulesen habe ich die getTables() Methode der Klasse DatabaseMetaData gefunden und benutze diese jetzt auch ;-)

Um Spalten auslesen zu können habe ich gesehen, dass es in der Klasse auch eine getColumns() Methode gibt.

Jedoch finde ich nirgends Informationen dazu, bis auf die doku selbst, die mir wie man sieht nicht wirklich weiterhilft ;-)

Ein codebeispiel:


ResultSet rCol = dbMeta.getColumns("", "", sCurTable, "");

				while( rCol.next() ) {

					System.out.println("column");

					String sCurColumn = rCol.getString( 4 );

					String sCurType = rCol.getString( 6 );

					String sCurSize = rCol.getString( 7 );

				}

aber er springt nie in die while schleife.

Was mach ich falsch?

danke im voraus mfg jghj

Geschrieben

Möchtest du den Spaltennamen haben (den bekommt man nämlich über die Metadaten) oder die Werte die in der Spalte stehen. Dafür müsste man ein SQL Statement absetzen ?

Geschrieben

ich möchte die spaltennamen, typen u. längen(bzw. genauigkeiten) haben.

dbMeta hab ich vergessen zu pasten ist eine instanz von DatabaseMetaData:


DatabaseMetaData dbMeta = con.getMetaData();

mfg jghj

Geschrieben

ResultSet rCol = dbMeta.getColumns("", "", sCurTable, "");

catalog - a catalog name; must match the catalog name as it is stored in the database; "" retrieves those without a catalog; null means that the catalog name should not be used to narrow the search

schemaPattern - a schema name pattern; must match the schema name as it is stored in the database; "" retrieves those without a schema; null means that the schema name should not be used to narrow the search

Quelle

Diese Aussage lässt mich vermuten das entweder der CatlogName oder der SchemaName in deiner Datenbank hinterlegt ist. Durch den Leerstring als Parameter werden diese jedoch aus der Suche ausgeschlossen.

Versuche einmal folgenden Code


ResultSet rCol = dbMeta.getColumns(null,null, sCurTable, "");

Sollte das nicht den gewünschten Erfolg bringen könnte folgender Code noch das gewünschte Ergebnis bringen

ResultSet rCol = dbMeta.getColumns(null,null, sCurTable, "%");

Geschrieben

danke, das hatte ich auch schon probiert. Lag aber 1. an dem "%" und die table war klein geschrieben. Der jdbc treiber liefert aber doch alle tabellen groß.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...