Foros del Web » Programación para mayores de 30 ;) » Java »

URGENTE: Problema con ResultSet ayuda x favor

Estas en el tema de URGENTE: Problema con ResultSet ayuda x favor en el foro de Java en Foros del Web. Hola, estoy teniendo problemas con un resultset en java. Lo q intento hacer es recuperar de una tabla de amistades, todos los amigos de un ...
  #1 (permalink)  
Antiguo 27/03/2010, 08:07
 
Fecha de Ingreso: junio-2009
Mensajes: 115
Antigüedad: 14 años, 10 meses
Puntos: 0
URGENTE: Problema con ResultSet ayuda x favor

Hola, estoy teniendo problemas con un resultset en java. Lo q intento hacer es recuperar de una tabla de amistades, todos los amigos de un usuario, y mi intencion es recorrer ese resultset de amigos e insertar para todos esos usuarios mensajes. La intencion es crear un "foro". El codigo que utilizo para recuperar las amistades y recorrerlas es el siguiente:
public void inserta_msg ( String mensaje, int emisor, String fecha, String titulo) throws SQLException {

ResultSet amigo = sentencia.executeQuery("Select id_amigo from amigos where id_user = '"+emisor+"';");

while ( amigo.next() ) {
sentencia.executeUpdate("insert into mensajes (id_emisor, id_receptor, fecha, texto, titulo, estado) values ('"+emisor+"', '"+amigo.getInt("id_amigo")+"', '"+fecha+"', '"+mensaje+"', '"+titulo+"', '"+0+"');");
}

}
Sin embargo, lo que hace ahora es insertar el mensaje para el primer amigo y se queda colgada la aplicacion, lo malo es que tampoco me retorna errores, y cuando accedo a la BBDD a verificar que ha insertado, me encuentro con que siempre me inserta el primer amigo, lo cual me hace pensar que el error esta en el resultset o a la hora de recorrerlo pero no veo por donde pueden ir los tiros.

Os estaria muy agradecido si me pudieseis exar una mano, ya que llevo un dia con esto y me urge tenerlo.
Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 27/03/2010, 10:25
 
Fecha de Ingreso: junio-2009
Mensajes: 115
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: URGENTE: Problema con ResultSet ayuda x favor

Mirando el log del apache me encontre con este error:
java.sql.SQLException: Operation not allowed after ResultSet closed

Y la linea donde me indica que tengo el error es la siguiente:
ResultSet amigos = (ResultSet) primero.getamigos(identificador);//recuperamos todos los amigos del usuario conectado

while(amigos.next()){
primero.inserta_msg(comentario, identificador, amigos.getInt("id_amigo"),f_fecha, titulo);//insertamos el comentario en cuestion
}

Estas lineas estan en mi Servlet, e intento primero recoger los amigos que haya desde la BBDD con la clase primero y una vez devueltos éstos, se recorren y se almacenan ls mensajes.
Pero me devuelve el error citado anteriormente y no inserta todo los mensajes.
  #3 (permalink)  
Antiguo 28/03/2010, 19:28
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: URGENTE: Problema con ResultSet ayuda x favor

Mira amigo, eso lo puedes hacer en un paso, lo he utilizado para oracle, habria que ver si para la base que utilices funciona esa sentencia, pero puedes hacer un insert-select, se oye raro, pero se puede, aquí un ejemplito:
http://www.adp-gmbh.ch/ora/sql/insert/select_and_subquery.html
Suerte!!!!
  #4 (permalink)  
Antiguo 31/03/2010, 06:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: URGENTE: Problema con ResultSet ayuda x favor

Parece que tienes un problema con SQL por no hacer un close() del statement.

Mi recomendación es que primero recuperes una colección de elementos, cierres el statement y así te devuelva la colección. Luego recoges la colección con otro método y la iteras con el insert correspondiente.

Si quieres que se deshaga en caso de algún fallo puedes setearla como transacional.

GL

Etiquetas: favor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:11.