Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2008, 11:21
Gerardo_mfg
 
Fecha de Ingreso: octubre-2003
Ubicación: Huancayo - Peru
Mensajes: 32
Antigüedad: 21 años, 5 meses
Puntos: 0
Pregunta Procedimiento Generador de Codigos ID

Saludos, estoy realizando un proyecto y necesito que las clavez se generen automáticamente en el servidor de base de datos, revise una de los procedimientos que creé en MSSQL Server y trate de adecuarlo a MySQL, el procedimiento se crea sin errores, pero al llamarlo con:

CALL SP_NUEVROL('Elemento','Descripcion del elemento');

sale un mensaje que dice que idrol no puede ser nulo o vacio, osea que el procedimiento no esta creando el codigo o no lo esta enviando correctamente al INSERT

Que podría estar mal?

CREATE PROCEDURE SP_NUEVROL (IN nomrol VARCHAR(50), IN descrol VARCHAR(150))
BEGIN
DECLARE contador TINYINT;
DECLARE codigonuevo TINYINT;
DECLARE cadenaceros VARCHAR(3);
DECLARE contcodigo VARCHAR(3);
DECLARE ultimo VARCHAR(3);
DECLARE nuevocod VARCHAR(3);
SET nuevocod = 'R00';
SELECT contador = count(idrol) from MRoles;
IF contador = 0 THEN
SET nuevocod = 'R01';
ELSE
SELECT ultimo = MAX(idrol) from MRoles;
SET contcodigo = RIGHT(ultimo,2);
SET contador = contcodigo;
SET contador = contador + 1;
SET cadenaceros = REPEAT('0', 2 - LENGTH(contador));
SET nuevocod = 'R' + cadenaceros + contador;
END IF;
INSERT INTO MRoles(idrol, nomrol, descrol) VALUES (nuevocod, nomrol, descrol);
END;



Los codigos que deberian formarse son asi: R01.....
__________________
La fidelidad es a la vida de las emociones lo que la coherencia a la vida del intelecto. ("El Retrato de Dorian Gray" - Oscar Wilde)