Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Parametros Out y Variables Delphi MySql (https://www.clubdelphi.com/foros/showthread.php?t=35651)

RiverPlate 16-09-2006 23:48:20

Parametros Out y Variables Delphi MySql
 
Buenas gente,

Estoy en un dilema con MySQL y delphi....

Uso los componentes BDE de delphi con un conector MySql (3.5.1) para acceder a la BD, no tengo problemas con las consultas pero si con los store procedures...

El tema es que yo necesito hacer un insert, cosa no muy complicada, pero necesito un parametro out para obtener el id de auto incremento del registro que inserte, por lo que vi la funcion a utilizar es last_insert_id() el tema es que en un TQUERY coloco el call NEW_REG(:Param1,:Param2,....etc) y el ultimo de lo parametros es de tipo OUT y es el que me devuelve id del registro insertado.

Desde delphi cargo los parametros y luego ejecuto el SQL con ExcSql que no tiene problema salvo por la definicion del parametro out el cual me arrija el siguiente error:

"out or inout argument for routine (nombre store procedure) is not a variable"

el Store es algo simple como esto.. (no es el mismo pero para que se den una idea..):

CREATE PROCEDURE `pCreatecontentitem`(
INOUT param_ContentItemId int
, param_Title varchar(255)
, param_Content varchar(4000)
)

Begin
insert into tablename ( Title , Content ) values ( param_Title , param_Content ) ;

set param_ContentItemId = LAST_INSERT_ID();
End;

lo que necesito saber como se trabajan las variables locales en los stores de mysql y los parametros out???.. para con esto poder obtener desde delphi el valor devuelto con Store.ParamByName('param_ContentItemId').AsInteger por ejemplo..

Espero que se haya entendido mi problema.. Saludos

Ahora no puedo ejecutar el sql porque me ar

RiverPlate 17-09-2006 15:45:11

Solucion por parte
 
Buenas, ya solucione una parte y es que si llamo al store en vez de con el parametro OUT :aId por ejemplo, lo llamo como una variable @aId entonces ahi a la salida del store tengo el nuevo Id generado por el autocommit de la tabla.. ahora el problema lo tengo cuando quiero obtener ese valor de variable en un parametro out desde delphi.. probe sin exito con..

NEW_ITEM(@aId,... demas parametros in);
Select @aId into :aId;
/* siendo :aId un parametro out */

o
begin
NEW_ITEM(@aId,... demas parametros in);
Select @aId as aId;
end;
/* a ver si lo podia sacar como un field del resultset pero tampoco..*/

Les agradeceria su respuesta porque estoy colgado con esto y no puedo seguir si no lo soluciono..

Gracias...


La franja horaria es GMT +2. Ahora son las 19:24:55.

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