Ver Mensaje Individual
  #1  
Antiguo 13-05-2007
Avatar de zcatzz
zcatzz zcatzz is offline
Miembro
 
Registrado: dic 2006
Posts: 48
Reputación: 0
zcatzz Va por buen camino
Procedimiento Almacenado y parametros

Hola Buenas tardes :

Utilizo Delphi 5 y mysql 5...
Tengo un procedimiento almacenado que tiene un parametro de entrada y uno de salida.. Estoy utilizando adoquerys mi duda es la siguiente... Realizo la llamada de este procedimiento de esta manera:


idm:=1;
DModulo.QGeneraMat.Active:=false;
DModulo.QGeneraMat.SQL.Clear;
DModulo.QGeneraMat.SQL.Text:='call addMatricula(@cid,:idm)';
DModulo.QGeneraMat.Parameters.ParamByName('idm').value:=idm;
DModulo.QGeneraMat.ExecSQL;
edit1.text:=InttoStr(cid);







pero no se como tomar el valor de regreso.. es decir el parametro de salida, de la manera como lo hago siempre me devuelve un valor enorme y siempre es el mismo .. Con esto obviamente estoy haciendo algo mal, por lo que lo intente de diferentes maneras y me arroja diferentes errores..

Cual es la sintaxis correcta?

Pd: el procedimento es este:

CREATE DEFINER=`root`@`localhost` PROCEDURE `addMatricula`(out cid int, in idm int)
BEGIN
select count(*) into cid from folio_matricula where id_mpio=idm;
if cid > 0 then
update folio_matricula set foliador=LAST_INSERT_ID(foliador+1) where id_mpio=idm;
select foliador into cid from folio_matricula where id_mpio=idm;
else
insert into folio_matricula values (1, idm);
SELECT LAST_INSERT_ID(idm);
end if;
END
Responder Con Cita