Exacto debes usar la funci�n returning de firebird.
Te pongo de ejemplo SP textual que tengo en una BD:
SET TERM ^ ;
CREATE PROCEDURE P_ENC_SAL (
INT_IDAC INT_NNULL,
INT_IDA INT_NNULL,
INT_NUM INT_NNULL,
DAT_FECHA DAT_NNULL,
VCH_FACTURA VCH_11_NULL,
VCH_RECIB VCH_30_NULL,
VCH_TRANSP VCH_30_NULL,
VCH_CLAVE VCH_2_NNULL,
INT_USU INT_NNULL )
RETURNS (
INT_SAL INT_NULL,
INT_IDS INT_NULL )
AS
BEGIN
/* Procedimiento para registrar el encabezado de los vales de salida */ insert into vteano (idac, ida, num, fecha, factura, recib, transp, clave, iduv)
values (:int_idac, :int_ida, :int_num, :dat_fecha, :vch_factura, :vch_recib, :vch_transp, :vch_clave, :int_usu) returning idea into :int_ids;
int_sal = row_count;
suspend;
END^
SET TERM ; ^
El campo llave de la tabla se llama idea
Saludos
=========
|| ISMAEL ||
=========
Earlier message 37 lines
----- Original Message -----
From: Martin Gomez
To: Spanish version of Lazarus List
Sent: Wednesday, December 19, 2012 9:18 AM
Subject: Re: [Lazarus-es] obtener id reci�n grabado
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/
2012/12/19 Paola Bruccoleri <pbruccoleri en adinet.com.uy>
Hola todos..
quiz�s el asunto no es muy claro, tratar� de explicar lo que quiero lograr.
Tengo un form donde debo capturar unos datos que se grabar�n en una tabla1 y a su vez capturar registros complementarios a esos datos (1 o m�s) que ser�n grabados en una tabla2.
A la hora de grabar, tabla1 obtendr� su id en forma autom�tica, pero debo usar ese mismo id para grabar los registros complementarios a ese en tabla2.
Uso componentes zeos y firebird.
Puedo usar un store procedure, pero no se si se le puede pasar por ej un array como par�metro (que ser�an los registros que ir�n a tabla2)
Para que tengan una idea, lo asociar� a la idea cl�sica de una factura y sus detalles, donde el id de factura ser� el mismo obviamente en el maestro y en el detalle.
Agradezco cq idea
muchas gracias!