Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/04/2012, 10:20
losaltlv
 
Fecha de Ingreso: abril-2012
Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años
Puntos: 0
Respuesta: problema con mysql crear un procedimiento

ahora en mysql lo estoy haciendo asi
CREATE TABLE generador (Parametro varchar(40)primary key,
numero int);

insert into generador values('producto',0);
insert into generador values('cliente',0);
insert into generador values('usuarios',0);
insert into generador values('marca',0);
insert into generador values('natural',0);
insert into generador values('juridico',0);
insert into generador values('00000000',0);
insert into generador values('boleta',0);
select * from generador;

create PROCEDURE Genera (param varchar(40),INOUT codgen varchar(8))
BEGIN
declare ceros int;
declare ult INT;
SELECT ult=numero + 1 FROM `generador` WHERE Parametro = param;
SET ceros = 3 - LENGTH(ult);
SET codgen = LEFT(param,5)+REPEAT('0',ceros) +convert(ult,char);
update `generador` set numero=ult where parametro =param;
END

create table usuarios(
codusu varchar(8)primary key,
usu_id varchar(20),
usu_pass varchar(20)
);

create procedure usu_nuevo(INOUT codusu varchar(8),id varchar(20),pass varchar(20))
begin
declare xcod varchar(8);
call Genera ('usuarios',xcod);
set codusu=xcod;
insert into usuarios VALUES(codusu,id,pass);
end;

call usu_nuevo('','clever','123

pero cuando lo ejecuto me sale este error :V

OUT or INOUT argument 1 for routine ferreteria.usu_nuevo is not a variable or NEW pseudo-variable in BEFORE trigger

yo creo q el error esta en
call Genera ('usuarios',xcod);
en el momento de ejecutar el proedimiento para asignar la variable deberia ser call Genera ('usuarios',out xcod);
pero sle este error
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'out xcod);
set codusu=xcod;
insert into usuarios VALUES(codusu,id,pass);
end' at line 4

bueno gracias a los q se tarden en leeer esto ejeje