# tabellenName aus den Metadaten auslesen



## vodn7v (30. Apr 2009)

Hallo,
ich möchte aus den metadaten den tabellennamen auslesen, leider funktioniert das nicht so ganz:


```
for(int i=0;i<errQuer.length;i++){
					ResultSetMetaData rsmd = null;

			
							ResultSet rs = db.executeQuery(errQuer[i]);
							rsmd = rs.getMetaData();
							String tableName = null;
					
							while(rs.next())
							{
								tableName = rsmd.getTableName(i);
							}

							rs.close();
}
```

dabei bekomme ich immer folgende fehlermeldung:

java.sql.SQLException: Column index out of range.


Also es sind mehrere selectstatements die ich in einem schleifendurchlauf ausführe. zu jeder abfrage gibt es mehrere ergebnisse. als Endergebnis haeb ich mir in etwa sowas vorgestellt:

Tabelle1 - Result:1
Tabelle1 - Result:2
Tabelle1 - Result:3
Tabelle1 - Result:4
Tabelle2 - Result:1
Tabelle2 - Result:2
Tabelle2 - Result:3
Tabelle2 - Result:4

usw.... woran hakt es bei mir ??

danke euch !


----------



## SlaterB (30. Apr 2009)

du fragst soviele Tabellenamen ab wie Ergebnisse in der Query,
es gibt aber nur einen Tabellennamen pro Spalte (getColumnCount())

edit: ach nein, du fragst potentiell 1000x den gleichen Tabellennamen ab,
> tableName = rsmd.getTableName(i);
wieso das so oft, wenn sich i in der Schleife nicht ändert?

und i ist der Index des Query-Arrays, der kann doch sehr hoch werden während in jeder Query nur 1-4 Columns enthalten sind


----------



## vodn7v (30. Apr 2009)

ja mein plan sieht so aus:

```
for(int i=0;i<errQuer.length;i++){
					ResultSetMetaData rsmd = null;

			
							ResultSet rs = db.executeQuery(errQuer[i]);
							rsmd = rs.getMetaData();
							String tableName = null;
					
							while(rs.next())
							{
								tableName = rsmd.getTableName(i);
                                                                vecError.add(rs.getString("gdct_recno"));
                                                                // diese beiden werte möchte ich dann in eine hashmap oder in 
                                                                 einen Vector packen damit ich sie immer zugeordnet habe. also tabelle + dazugehörigen wert.
							}

							rs.close();
}
```


----------



## SlaterB (30. Apr 2009)

warum fragst du den Tabellennamen nicht EINMAL vor der Schleife ab?
was soll sich innerhalb der Schleife ändern?

und immernoch: das i kommt vom Array errQur,
das hat doch mit der einzelnen Abfrage nix zu tun


----------



## vodn7v (30. Apr 2009)

ja du hast recht.. ich sitze wohl schon zu lange davor... also läuft jetzt.

vielen dank !!


----------

