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,
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]