Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/09/2009, 04:53
alkortius
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ayuda con proceso almacenado.

Cita:
Iniciado por oskar_calvo Ver Mensaje

Código:
DELIMITER //

CREATE PROCEDURE usuario_usuario (IN id_erp VARCHAR(12), IN Nombre VARCHAR (50), IN correo VARCHAR(50), IN creacion_usuario DATE, IN rol VARCHAR(50))
#comenzamos el procedimiento.
BEGIN
    #consultamos para ver si existe el usuario.
    SELECT COUNT(UID) INTO @CUENTA FROM users name = id_erp;
    #si nos da 1, quiere decir que existe y ejecutamos la actualización
    IF @CUENTA ==1
        UPDATE USERS SET name = id_erp, mail = correo, where name = id_erp;
    ENDIF
    #si nos da 0, quiere decir que no existe y tenemos que realizar el insert
    IF @cuenta == 0
#->>> nueva linea añadida con la declaración de la variable.
        DECLARE ultimoregistro CHAR(20) DEFAULT NULL;
        INSERT INTO users (name,pass,mail,mode,sort,threshold,created,access,login,status,timezone,language,init) VALUES (id_erp,'e10adc3949ba59abbe56e057f20f883e',correo,0,0,0,creacion_usuario,0,0,1,7200,'es',correo);
        SELECT LAST_INSERT_ID() AS @ultimoregistro FROM users;
#->>>> se declara la asignación del valor.
        SET ultimoregistro = 'valor'
        INSERT INTO profile_values (fid, uid, value) VALUES (2, ultimoregistro, nombre);
        INSERT INTO users_roles (uid,rid) VALUES (ultimoregistro, rol);
    ENDIF
END$$

DELIMITER;
Lo que te he puesto en negrita para que lo haces ?