Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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, "%");

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.