Java - Cambiar el tipo de resulset

 
Vista:

Cambiar el tipo de resulset

Publicado por Eduardo (29 intervenciones) el 07/03/2006 09:58:39
Hola a todos:

Tengo un duda de java sobre como emplear el resultset.

Si tengo un resultset creado llamado rs que coje los datos correctamente, si hago

rs.first();

me da un error de resultset de type formward only, ¿Como puedo cambiar este tipo de resultset?

Y otra cosa, existe algun metodo de resulset que diga si hay registros con executequery anterior?
Es decir en access por ejemplo esta rs.recordcount que si es distinto de 0 sabes que hay mas de un registro en la base.

Un saludo y gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cambiar el tipo de resulset

Publicado por Jonathan (30 intervenciones) el 07/03/2006 15:30:21
Hola cuando creas tu statement debes especificarle dos argumentos:

createStatement(int resultSetType, int resultSetConcurrency)

resultSetType: se puede elegir que el objeto ResultSet se pueda mover (entre registros) sólo hacia delante (ResultSet.TYPE_FORWARD_ONLY),

que se pueda mover pero que cuando se actualice, aunque los cambios ya hayan sido reflejados en la base de datos, el ResultSet no los 'sienta' (ResultSet.TYPE_SCROLL_INSENSITIVE)

o que se pueda mover y que los cambios si que se reflejen también en él (ResultSet.TYPE_SCROLL_SENSITIVE).

Para el parámetro resultSetConcurrency: podemos establecer dos valores diferentes: ResultSet.CONCUR_READ_ONLY si queremos que los datos se puedan leer pero no actualizar, y ResultSet.CONCUR_UPDATABLE si queremos permitir que la base de datos sea actualizable mediante el objeto ResultSet. Si no se usa el método sin parámetros el objeto será TYPE_FORWARD_ONLY y CONCUR_READ_ONLY.

entonces para tu caso cuando crees tu statement aplica esto:

Statement stmt= conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );

donde conn es tu objeto de conexion.

Para saber si el resulset no arrojó registros utiliza el metodo next() que devuelve false si no hay registros. es Decir con un condicional pruebas si no hay registros

Jonathan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar