ResultSet

Hallo,

hab da ein Problem:
wie bekomme ich die ZEILEN-Anzahl, also Anzahl der Datensätze von einem ResultSet. Spaltenanzahl habe ich gleich gefunden, aber gibts da auch was für die Datensätze

Danke

Hallo Andi

wie bekomme ich die ZEILEN-Anzahl, also Anzahl der Datensätze
von einem ResultSet.

So auf die Schnelle würd ich sagen

myResultSet.last();
int numberOfRows = myResultSet.getRow();

Kann aber sein, dass es noch optimalere Lösungen gibt.

Danke

Bitte :o)

Grüsse

Andrea

Habe ich ausprobiert, und ich bekomme nur das

Ungültiger Vorgang bei Nur-Weiterleiten-Ergebnismenge:last()

weist du da was?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ungültiger Vorgang bei Nur-Weiterleiten-Ergebnismenge:last()

heißt im Klartext: Das Resultset weiß es schlicht und ergreifend nicht, da es immer nur von Datensatz zu Datensatz geht (zumindest Standard ResultSet)

wie wärs mit

int anz = 0;
ResultSet rs = stmt.executeQuery(„select count(*) from tabelle“);
if (rs.next()){
anz = rs.getInt(1);
}
rs.close();
//Dann mach auch immer was du mit der ANzahl machen willst
//(z.B. Array erzeugen)
rs = stmt.executeQuery(„select spalte1, spalte2 from tabelle“);
while (rs.next()){
//und schön der Reihe nach auslesen.
}

Michael

Dann hast du ein Forward-Only-Resultset… bei Connection.createStatement gibt es einen parameter mit dem du z.b. auch ein TYPE_SCROLL_INSENSITIVE ResultSet erzeugen kannst, mit dem müsste der Methodenaufruf klappen. Allerdings unterstützen das nicht alle JDBC-Treiber und ich rate auch dringend davon ab. Die Lösung von Michael mit dem Count(*) ist aus Performancegründen eh weit besser.

Grüße
Bruno

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]