Buenas gente les dejo una inquitud a ver que se puede hacer...
Me arme un pequeño script con sentencias sql para crear un SP.
el codigo es este
Código:
use fal;
DROP PROCEDURE IF EXISTS curdemo;
delimiter //
CREATE PROCEDURE curdemo(IN fdesde varchar(10))
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE elidlegajo VARCHAR(50);
DECLARE eldia DATE;
DECLARE lahora DECIMAL(15,2);
DECLARE entradas CURSOR FOR select idlegajo, dia, hora from fichada
inner join accion on accion.idaccion = fichada.idaccion
where dia > fdesde;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
delete from fal.fichadatemp;
OPEN entradas;
REPEAT
FETCH entradas INTO elidlegajo, eldia, lahora;
IF NOT done THEN
INSERT INTO fal.fichadatemp VALUES (elidlegajo,eldia,lahora);
END IF;
UNTIL done END REPEAT;
CLOSE entradas;
END
//
delimiter ;
Ahora bien cuando llamo al SP lo hago asi
Código:
call curdemo('2009-01-01')
Hasta aca bien, el SP hace lo que tiene que hacer, borra la tabla temporal de fichadas y la vuelve a llenar, pero si lo vuelvo a disparar me tira el servicio de Mysql.
De varias pruebas que hice note lo siguiente...
si ejecuto el SP y cierro la conexion, me logeo nuevamente y vuelvo a ejecutar el SP, funciona, lo probe asi 5 veces seguidas y no se rompio, pero si lo ejecuto dos veces seguidas con la misma conexion se cae.
Por otro lado si el SP le saco el parametro de fecha, no se cae nunca, y tambien probe usando DATE a cambio de VARCHAR en el parametro tambien se cae.
La version de Mysql es 5.0.2.alpha-nt
Si alguien se le ocurre que puede estar pasando o algo para leer la verdad me sorprende mucho la inestabilidad del caso.
Saludos.-