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:
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.call curdemo('2009-01-01')
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.-