Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/06/2011, 21:16
isidro_01
 
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