Resultset mehrmals durchlaufen
-
Hi,
ich möchte ein Resultset mehrmals durchlaufen. Bis jetzt kann ich das Result set nur ein mal durchlaufen, weiss aber nicht wie ich dann den Cursor wieder auf die erste Zeile bekomme es ein zweites mal zu durchlaufen.
Gibt es dafür eine Möglichkeit?
Ich habe gelesen das Funktionen wie getprevious() oder getfirst() aufgrund des jdbc - Treibers nicht unterstützt werden. Kann man auf irgendeine andere Art und Weise in einem Resultset navigieren?
Danke im Voraus für eure Hilfe.
-
Soviel ich weiss sind die Methoden schon implementiert nur die Treiber ignorieren wohl diese Funktionalität. Außer jede einzelne Zeile irgendwo (in einem Vector womöglich) abzuspeichern sehe ich keine Möglichkeit zu navigieren ... leider.
-
Es hängt letztendlich von verwendeten JDBC-Treiber ab, der ja in der Regel vom jeweiligen DB-Hersteller kommt. Handelt es sich um einen JDBC 2 Treiber sollte es funzen.
z.B. funktioniert es mit den Sybase-Treibern. Man sollte darauf achten beim createStatement die entsprechenden Parameter für das ResultSet zu übergeben.
in etwa
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
Nun kann man so Sachen wie fist, beforeFirst oder gar eine absolute Positionierung mit absolute(int row) verwenden.
Wenn man das Statement ohne diese Parameter aufruft, wird defaultmäßig TYPE_FORWARD_ONLY verwendet womit ein scrollen im ResultSet nicht(!) möglich ist.Hab jetzt zwar keine Oracle-DB zur Hand, würde mich aber wundern wenn's damit nicht funzen würde.
bis dänn, O'Dog