Como recorrer dos veces un resultSet

Javi
04 de Mayo del 2004
Tengo un problemilla. Necesito trabajar con un resultSet recoriendolo por completo para guardar su informacion. El problema es que despues necesito ese resultSet otra vez, pero como ya lo he recorrido ya esta vacio. Para lo que quiero hacer no puedo utilizar TYPE_SCROLL_INSENSITIVE y rs = rs2 no vale pq solo copia la direccion. Total que me gustaria como poder copiar un resultSet o volverlo a la posicion inicial. Ah!! Tampoco puedo hacerlo usando el beforeFirs() del resultSet pq no esta implementado en el driver que utilizo. Gracias!!!!

azuluaga
04 de Mayo del 2004
Puedes almacenar los datos en un CachedRowSet por ejemplo, así:
ChachedRowSet datos;
datos.populate(resultSet);

De esta manera puedes recorrerlo cuantas veces quieras, usando while (datos.next())...
y cuando vayas a empezar de nuevo: datos.beforeFirst().

maramonar
04 de Mayo del 2004
El tema con el uso de Rowset y sus implementaciones es que se necesita un JDK bastante nuevo (pongo eso porque no estoy seguro desde de que versión esta disponible)...

Javi
04 de Mayo del 2004
Muchiiiiiiiiiiiiiiiiiiiiiiisimas gracias!!! Es justo lo que queria. Ahora el problema esta en que al hacer CachedRowSet tengo que inicialirzarlo a null y cuando hago crs.populate(resultset) me dice que me vaya a acostar. Tengo que utilizar alguna constructora o algo? He visto que no existe new CachedRowSet. Gracias!!!

drf2004
04 de Mayo del 2004
Yo lo intenté para una aplicacion pero no funciona nada, no puedes usarlo dos veces. Tienes que guardar su contenido en alguna variable y usar esa.
Me dijeron que usara Vector para copiar el contenido.

david
04 de Mayo del 2004
no se puede recorrer un resultset dos veces si se usan sus datos para algo en el momento que los escribes o los asignas auna variable, estos desaparecen del resulset, deberia guardarlos en un vector o array para poder utilizarlos despues

Javi
04 de Mayo del 2004
Gracias, ya me lo temia. Gracias de todas formas.