Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

procedimiento de registro de usuario, aun no me corre

Estas en el tema de procedimiento de registro de usuario, aun no me corre en el foro de Mysql en Foros del Web. tengo un problemita al intentar ejecutar el siguiente procedimiento almacenado: Código: CREATE PROCEDURE musica.registroUsuario (nombre VARCHAR(90), apellido VARCHAR (90), fechanacimiento DATE, pass VARCHAR(40), email VARCHAR ...
  #1 (permalink)  
Antiguo 03/06/2011, 21:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 23
Antigüedad: 14 años, 6 meses
Puntos: 0
procedimiento de registro de usuario, aun no me corre

tengo un problemita al intentar ejecutar el siguiente procedimiento almacenado:

Código:
CREATE PROCEDURE musica.registroUsuario (nombre VARCHAR(90), apellido VARCHAR (90), fechanacimiento DATE, pass VARCHAR(40), email VARCHAR (120), codactivacion VARCHAR (40))
BEGIN
DECLARE respuesta INT;
IF (SELECT COUNT(idUsuario) FROM musica.usuario WHERE emailUsuario=email)>0 THEN 
    SET respuesta=043;
ELSE
    INSERT INTO musica.usuario (nombreUsuario,apellidoUsuario,fechaNacUsuario,passUsuario,emailUsuario) VALUES (nombre,apellido,fechanacimiento,pass,email);
    SET respuesta=last_insert_id();
    INSERT INTO activacionesUsuario VALUES (codactivacion,respuesta);
END IF;
select @respuesta;
END$$
el problema esta al hacer el llamado
me arroja error 1045
es para un trabajo de la universidad...

aqui dejo el script completo:

Código:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `musica` DEFAULT CHARACTER SET utf8 ;
USE `musica` ;

-- -----------------------------------------------------
-- Table `musica`.`usuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `musica`.`usuario` ;

CREATE  TABLE IF NOT EXISTS `musica`.`usuario` (
  `idUsuario` INT NOT NULL AUTO_INCREMENT ,
  `nombreUsuario` VARCHAR(90) NOT NULL ,
  `apellidoUsuario` VARCHAR(90) NULL ,
  `fechaNacUsuario` DATE NULL ,
  `passUsuario` VARCHAR(40) NOT NULL ,
  `estadoUsuario` SMALLINT NOT NULL DEFAULT 0 ,
  `emailUsuario` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`idUsuario`) ,
  UNIQUE INDEX `emailUsuario_UNIQUE` (`emailUsuario` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `musica`.`activacionesUsuario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `musica`.`activacionesUsuario` ;

CREATE  TABLE IF NOT EXISTS `musica`.`activacionesUsuario` (
  `idActivacion` VARCHAR(40) NOT NULL ,
  `idUsuario` INT NOT NULL ,
  PRIMARY KEY (`idActivacion`) ,
  INDEX `fk_activacionesUsuario_usuario` (`idUsuario` ASC) ,
  CONSTRAINT `fk_activacionesUsuario_usuario`
    FOREIGN KEY (`idUsuario` )
    REFERENCES `musica`.`usuario` (`idUsuario` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- procedure registroUsuario
-- -----------------------------------------------------

USE `musica`;
DROP procedure IF EXISTS `musica`.`registroUsuario`;

DELIMITER $$
USE `musica`$$

CREATE PROCEDURE musica.registroUsuario (nombre VARCHAR(90), apellido VARCHAR (90), fechanacimiento DATE, pass VARCHAR(40), email VARCHAR (120), codactivacion VARCHAR (40))
BEGIN
DECLARE respuesta INT;
IF (SELECT COUNT(idUsuario) FROM musica.usuario WHERE emailUsuario=email)>0 THEN 
    SET respuesta=043;
ELSE
    INSERT INTO musica.usuario (nombreUsuario,apellidoUsuario,fechaNacUsuario,passUsuario,emailUsuario) VALUES (nombre,apellido,fechanacimiento,pass,email);
    SET respuesta=last_insert_id();
    INSERT INTO activacionesUsuario VALUES (codactivacion,respuesta);
END IF;
select @respuesta;
END$$

DELIMITER ;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
de ante mano gracias
  #2 (permalink)  
Antiguo 04/06/2011, 06:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: procedimiento de registro de usuario, aun no me corre

Cita:
me arroja error 1045
Eso no es un error con el procedimiento, ni con el script. Eso significa que el usuario y/o el password que usas no son válidos.
Si hubiese un error de sintaxis el número sería 1065, no 1045.

Trata de explicar un poco mejor lo qu ehiciste, y si es posible copia completos los mensajes de error. Es muy útil para todos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: corre, procedimiento, registro, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.