jghj Geschrieben 17. Juni 2006 Geschrieben 17. Juni 2006 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 Zitieren
Pinhead Geschrieben 17. Juni 2006 Geschrieben 17. Juni 2006 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 ? Zitieren
jghj Geschrieben 17. Juni 2006 Autor Geschrieben 17. Juni 2006 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 Zitieren
Pinhead Geschrieben 17. Juni 2006 Geschrieben 17. Juni 2006 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, "%"); Zitieren
jghj Geschrieben 18. Juni 2006 Autor Geschrieben 18. Juni 2006 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ß. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.