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
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 ?
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
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, "%");
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ß.
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden