Java - Duda con Resultset

   
Vista:

Duda con Resultset

Publicado por Luis (83 intervenciones) el 25/12/2009 22:48:00
Estoy intentando recorrer un resultset hacia adelante y hacia atras.

La idea en si es mostrar los datos de una fila de una tabla en una ventana swing. En la ventana tengo dos botones jbAtras y jbAdelante que me deben permitir mostrar un registro y cuando le de por ejemplo al boton adelante mostrar el registro siguiente y si le doy al boton atras mostrar el registro anterior.


Tengo un metodo consultar que devuelve un resultset y lo llamo en el constructor de esta clase para que solo se ejecute una vez en cada ejecucion de la ventana donde tengo los botones. En dicho constructor tengo un variable tipo resultset a la que le asigno el resultado de la consulta esta variable se llama rs. Nota: no creo que haga falta colocar todo ese codigo pero si hace falta me dicen y lo coloco.

Tengo el siguiente codigo en el actionPerformed:

public void actionPerformed(ActionEvent ae) {

if(ae.getSource() == ven.jbAtras){
try {
if (rs.previous()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {

}
}else if(ae.getSource() == ven.jbAdelante){
try {
if (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {

}
}

}

Este codigo funciona bien para mostrar los registros hacia adelante y hacia atras como mencione que era lo que necesitaba. Por ejemplo esta consulta me devuelve cuatro registros que son los que tengo en la base de datos, yo puedo por ejemplo ir al primero, luego al segundo, luego al tercero, volver al segundo y asi todas las veces que quiera. El problema en si es que cuando llega al ultimo registro y intento retroceder me da este error.

java.sql.SQLException: After end of result set
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:Duda con Resultset

Publicado por jack (18 intervenciones) el 26/12/2009 01:16:28
hola luis
podrias poner todo el codigo de la clase resulta que hice lo que dices y pues no me da error talvez tomando toda la clase y compilandola pueda ver el problema
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

RE:Duda con Resultset

Publicado por Luis (83 intervenciones) el 26/12/2009 01:50:06
Hola jack

Esta es la clase donde esta el método de la consulta:

public class Prueba(){

Connection con = null;
PreparedStatement ps;
ResultSet rs;

public ResultSet consulta(){
con = BaseDatos.conectarBD();
try {
ps = con.prepareStatement("select * from Tabla");
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}

public class Controlador implements ActionListener {

Vista ven = null;
ResultSet rs = null;
Prueba p = null;

public Controlador(Vista ven) {
this.ven = ven;
p = new Prueba();
rs = p.consulta();
}

public void actionPerformed(ActionEvent ae) {

if(ae.getSource() == ven.jbAtras){
try {
if (rs.previous()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {

}
}else if(ae.getSource() == ven.jbAdelante){
try {
if (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException ex) {
}
}

}
}

No te coloco exactamente el codigo de las clases puesto que es bastante largo. Pero esta resumido a lo que viene al caso.

Y gracias de nuevo por tu ayuda.
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

RE:Duda con Resultset

Publicado por jack (18 intervenciones) el 26/12/2009 02:36:49
hola Luis
siento decirte que no puedo ayudarte no me da ningun error al regresar desde el ultimo registro, mira si quieres enviame un correo con las clases adjuntas talvez asi te pueda ayudar por lo pronto no comprendo que error puede haber
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

RE:Duda con Resultset

Publicado por Luis (83 intervenciones) el 26/12/2009 21:31:13
La verdad jack estoy sorprendido de este error copie estas clases en otro proyecto y cree otra ventana y funciona sin generar el error como tu comentaste. Al parecer es un error que tengo en esa ventana. Quien sabe donde tendra el error pero ya cambie la ventana por la nueva y funciona bien.

Muchas gracias por la ayuda.
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

RE:Duda con Resultset

Publicado por Chus (8 intervenciones) el 01/07/2010 16:42:31
Es muy tarde¿??
aún así lo dejo por si algún rezagado se topa con este problema.
A mí me estuvo pasando un tiempo y fué por culpa de usar multihilos. No daba tiempo al resultset a llenarse y usarse con una consulta y ya se estaba vaciando con otra. Mira a ver si es debido a eso y aplica la solución de sincronizar los hilos. Taluego!
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