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

Problema con el ResultSet

Estas en el tema de Problema con el ResultSet en el foro de Java en Foros del Web. Código PHP: public  ResultSet EliminarPEDIDO ( int mp )  throws SQLException  {          String cadSQL  =  "" ;         try {              cadSQL  =  "DELETE FROM PEDIDOS WHERE N_PEDIDO = '"  +  mp  +  "'" ;              ...
  #1 (permalink)  
Antiguo 22/12/2014, 12:16
 
Fecha de Ingreso: julio-2014
Ubicación: España
Mensajes: 83
Antigüedad: 10 años, 4 meses
Puntos: 2
Problema con el ResultSet

Código PHP:
public ResultSet EliminarPEDIDO(int mpthrows SQLException {
        
String cadSQL "";
        try {
            
cadSQL "DELETE FROM PEDIDOS WHERE N_PEDIDO = '" mp "'";
            
rs stm.executeQuery(cadSQL);
        } catch (
SQLException e) {
            
// Como no se pueden borrar registro del cual dependan mas, tengo
            // que ir buscando y recogiendo por el código facilitado para poder
            // eliminar el Nº DEL PEDIDO
            
cadSQL "SELECT N_PEDIDO FROM PEDIDOS WHERE N_PEDIDO = '" mp
                    
"'";
            
rs stm.executeQuery(cadSQL);
            if (
rs.next()) {
                
int pedido rs.getInt("N_PEDIDO");
                
cadSQL "SELECT N_PROCESO FROM ESTADO WHERE N_PEDIDO = '"pedido "' ORDER BY N_PROCESO";
                
System.out.println(cadSQL);
                
rs stm.executeQuery(cadSQL);
                
// Aqui al poder tener varios resultados, tengo que ir 1 a 1
                // haciendo la misma funciona con cada resultado
                
[B]while (rs.next()) {
                    
int nproducto rs.getInt("N_PROCESO");
                    
cadSQL "DELETE FROM CANTIDAD WHERE N_PROCESO = '"    nproducto "'";
                    
System.out.println(cadSQL);
                    
rs stm.executeQuery(cadSQL);[/B]
                    if (
rs.next()) {
                        
cadSQL "DELETE FROM ESTADO WHERE N_PROCESO = '"nproducto "'";
                        
rs stm.executeQuery(cadSQL);
                    } else {
                        
// En el caso que haya fechas puestas y numero de
                        // operador, hay que eliminar la información de cada una
                        // de las tablas
                    
}
                }
                if (
rs.next()) {
                    
cadSQL "DELETE FROM PEDIDOS WHERE N_PEDIDO = '" mp"'";
                    
rs stm.executeQuery(cadSQL);
                }
                return 
rs;
            }
        }
        
conex.commit();
        return 
rs;
    } 
Explico, estoy intentando hacer una limpieza de base de datos, comprobando paso a paso para asi, tener las respuestas seguras, el problema al parecer es que no terminar de recoger todos los resultados obtenido por el ResultSet, ya que tengo dos resultados diferentes: 4000 y 4001, solo me coge el 4001...entonces no se como hacerlo para que recoja ambos o en su defecto, recoja tantos registros como devuelva la QUERY
  #2 (permalink)  
Antiguo 24/12/2014, 02:40
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Problema con el ResultSet

Hola:

Con rs.next() se coge el siguiente resultado. Tu estructura es muy rara, es más o menos esto

Código Java:
Ver original
  1. try {
  2.    // Hago la consulta e ignoro totalmente los resultados (no hago rs.next() ni los trato)
  3. } catch (....)   {   // Pero si hay excepción...
  4.      // Me lio a tratar resultados
  5.      if  (rs.next() ) {
  6.          rs = stm.executeQuery(cadSQL);  // Machaco rs anterior con uno nuevo, para no tratar más resultados si los hubiera....
  7.          while (rs.next()) {
  8.               rs = // vuelvo a machacar el rs con otro nuevo resultado..
  9.               if (rs.next()) {
  10.                    rs = // Y lo vuelvo a machacar
  11.               }
  12.          }
  13.      }
  14. }

Lo normal es lo siguiente:

- Dentro del try se miran los resultados. No tiene sentido mirarlos en el catch, que sólo sucede si hay error y quizás ni siquiera tengas resultados precisamente porque ha habido un error al consultarlos.

- Si quirees varias consultas anidades, cada una que devuelva sus resultados en un ResultSet distinto. Si machacas tu resultet del while con otro resultset, al final no acabarás nunca los resultados de las primeras consultas, ya que los has perdido al machacar el ResultSet que los tenía con otro ResultSet.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 26/12/2014, 09:02
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Problema con el ResultSet

Deberías declarar a rs previamente como un Result set...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: resultset, string
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 02:30.