Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2011, 04:08
rogeliomx
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Error al ejecutar funcion

Hola, estoy ejecutando las siguientes funciones:

Código:
CREATE FUNCTION funcion (varemail VARCHAR(40),varpass BLOB,) RETURNS VARCHAR(50)
BEGIN   
    DECLARE insemail VARCHAR(40);    
    SET insemail = (SELECT email FROM sfusuarios WHERE email = varemail);   
    IF(insemail IS NULL) THEN
        CALL procedu(varemail,varpass);
        RETURN 'El email no existe';
    ELSE
        RETURN 'EL email ya esta en uso.';
    END IF;
END

Código:
CREATE PROCEDURE procedu (IN varemail VARCHAR(70),IN varpass BLOB)
BEGIN
    DECLARE idusuario INT;    
    START TRANSACTION;
        INSERT INTO sfusuarios (email,pass) VALUES (varemail,varpass);
        SET idusuario = (SELECT idusu FROM sfusuarios WHERE email = varemail);        
        IF(idusuario IS NOT NULL) THEN
            INSERT INTO sfperfil (idusu,fechanac) VALUES (idusuario,varfechanac);
        END IF;
        
    COMMIT;
END
Al ejecutar cada una por separado funcionan pero al intentar ejecutar la funcion tal cual la muestro me manda el siguiente error.
Explicit or implicit commit is not allowed in stored function or trigger

Última edición por rogeliomx; 24/05/2011 a las 04:13