[Lazarus-es] obtener id recién grabado

Paola Bruccoleri pbruccoleri en adinet.com.uy
Mie Dic 19 21:10:07 CET 2012


El 19/12/2012 12:18 p.m., Martin Gomez escribió:
> para cada base de datos hay una función (distinta en cada caso) que te 
> devuelve el valor del último id automático utilizado.
>
> aparentemente, en firebird la forma mas sencilla es ejecutar el INSERT 
> con un RETURNING al final, en vez de Query.ExecSQL utilizas Query.Open 
> y ya tenes el resultado.
>
> http://www.firebirdfaq.org/faq243/
>
Hola MArtín y demás compañeros..
ya tengo definidos generadores y disparadores en esas tablas. Ya he 
probado en otras tablas que al grabar, se genera automáticamente el id 
correspondiente sin necesidad de usar un componente zsequence.
Ahora estoy probando de usar el RETURNING... en un zquery coloqué algo así:

insert into tabla (c1, c2, c3) values (:c1, :c2, :c3) returning codigo

cargo los parámetros
hago un qry.open;

pero no se como capturar el campo código para usarlo en el otro query 
con el insert.

hice algo así:
nCodigo:= qry.FieldByName('codigo').AsInteger;
pero no funciona!.. (lo mismo usando ParamByName)
no se cual será la sintaxis correcta...

muchas gracias!



------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20121219/58a1a48e/attachment-0002.html>


More information about the Lazarus-es mailing list