Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Procedimiento Almacenado y parametros (https://www.clubdelphi.com/foros/showthread.php?t=43503)

zcatzz 13-05-2007 01:40:11

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

Lepe 13-05-2007 13:02:49

En MySql no tengo ni idea, pero prueba con DModulo.QGeneraMat.Fieldbyname('cid').AsXXX

Si no funciona, alguien que use mysql ya nos dirá algo.

Saludos

zcatzz 15-05-2007 00:04:43

No funciona
 
Cita:

Empezado por Lepe
En MySql no tengo ni idea, pero prueba con DModulo.QGeneraMat.Fieldbyname('cid').AsXXX

Si no funciona, alguien que use mysql ya nos dirá algo.

Saludos

:( Me regresa el error:

QGeneraMat.field´cid´ not found

Lepe 15-05-2007 13:51:57

La otra posibilidad es:
DModulo.QGeneraMat.Parameters.ParamByName('cid').value

siento dar palos de ciego :rolleyes:

zcatzz 16-05-2007 02:35:33

Marca Error
 
Cita:

Empezado por Lepe
La otra posibilidad es:
DModulo.QGeneraMat.Parameters.ParamByName('cid').value

siento dar palos de ciego :rolleyes:

Si tambien habia checado de esa forma y no quiere... :confused:


La franja horaria es GMT +2. Ahora son las 12:47:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi