Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/09/2009, 04:22
oskar_calvo
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: ayuda con proceso almacenado.

buenos días alkortius, lo primero muchas gracias por contestar.

A ver si si así esta bien.

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;

Gracias