Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/03/2014, 13:50
Avatar de Game[DxS]
Game[DxS]
 
Fecha de Ingreso: noviembre-2003
Ubicación: Concepción Chile
Mensajes: 100
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Problema con Stored Procedured

Gracias Gnzsolo yo, asi lo he solucionado:

Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE PROCEDURE control_impacto_rec_dep_sp(IN ID INT)
  3.  
  4.  
  5.     DECLARE l_last_row INT DEFAULT 0 ;
  6.     DECLARE var_idactivo INT;
  7.     DECLARE var_act_idactivo INT;
  8.     DECLARE var_dependencia INT;
  9.     DECLARE cHIJOS CURSOR FOR SELECT idactivo, act_idactivo, tipodependencia from DEPENDENCIA where idactivo = ID;
  10.     DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_last_row=1 ;
  11.    
  12.     /* Habilitando para que pueda ejecutar funciones recursivas */
  13.     SET @@max_sp_recursion_depth = 254 ;
  14.    
  15.     INSERT INTO dependencia_temp_table SELECT idactivo, act_idactivo, tipodependencia from DEPENDENCIA where idactivo = ID;
  16.        
  17.     /* Abrimos el cursor para empezar a recorrerlo */
  18.     OPEN cHijos;
  19.     c1_loop: LOOP
  20.  
  21.     FETCH cHijos INTO var_idactivo, var_act_idactivo, var_dependencia;
  22.        
  23.     IF (l_last_row=1) THEN
  24.             LEAVE c1_loop;
  25.         END IF ;
  26.        
  27.        
  28.         CALL control_impacto_rec_dep_sp(var_act_idactivo);
  29.  END LOOP c1_loop;
  30.  
  31.     /* cerramos el cursor */
  32.     CLOSE cHijos;
  33.  

Puedo hacer la función recursiva, ahora lo unico que me falta es que si esta linea: INSERT INTO dependencia_temp_table SELECT idactivo, act_idactivo, tipodependencia from DEPENDENCIA where idactivo = ID; no inserta nada, que termine el procedimiento, ya que cuando el select no trae datos, en la aplicación me da error.

Saludos y gracias por la ayuda :).