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
|