
08/04/2012, 10:20
|
| | Fecha de Ingreso: abril-2012 Ubicación: surquillo
Mensajes: 44
Antigüedad: 12 años, 11 meses 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 |