Veröffentlicht 17. Juni 200619 j 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
17. Juni 200619 j 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 ?
17. Juni 200619 j 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
17. Juni 200619 j 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, "%");
18. Juni 200619 j 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.