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 |
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 |
No funciona
Cita:
QGeneraMat.field´cid´ not found |
La otra posibilidad es:
DModulo.QGeneraMat.Parameters.ParamByName('cid').value siento dar palos de ciego :rolleyes: |
Marca Error
Cita:
|
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