<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19328">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>Exacto debes usar la función returning de
firebird.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Te pongo de ejemplo SP textual que tengo en
una BD:</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>SET TERM ^ ;<BR>CREATE PROCEDURE P_ENC_SAL
(<BR> INT_IDAC INT_NNULL,<BR> INT_IDA
INT_NNULL,<BR> INT_NUM INT_NNULL,<BR>
DAT_FECHA DAT_NNULL,<BR> VCH_FACTURA
VCH_11_NULL,<BR> VCH_RECIB VCH_30_NULL,<BR>
VCH_TRANSP VCH_30_NULL,<BR> VCH_CLAVE
VCH_2_NNULL,<BR> INT_USU INT_NNULL )<BR>RETURNS
(<BR> INT_SAL INT_NULL,<BR> INT_IDS INT_NULL
)<BR>AS<BR>BEGIN<BR> /* Procedimiento para registrar el encabezado de los
vales de salida */<BR> insert into vteano (idac, ida, num, fecha, factura,
recib, transp, clave, iduv) <BR> values
(:int_idac, :int_ida, :int_num, :dat_fecha, :vch_factura, :vch_recib,
:vch_transp, :vch_clave, :int_usu) returning idea into :int_ids;<BR>
int_sal = row_count;<BR> suspend;<BR>END^<BR>SET TERM ; ^</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>El campo llave de la tabla se llama
idea</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Saludos</FONT></DIV>
<DIV>=========<BR>|| ISMAEL ||<BR>=========</DIV>
<BLOCKQUOTE
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B>
<A title=mmgomez@gmail.com href="mailto:mmgomez@gmail.com">Martin Gomez</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=lazarus-es@lists.lazarus.freepascal.org
href="mailto:lazarus-es@lists.lazarus.freepascal.org">Spanish version of
Lazarus List</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, December 19, 2012 9:18
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Lazarus-es] obtener id
recién grabado</DIV>
<DIV><BR></DIV>
<DIV dir=ltr><FONT face=tahoma,sans-serif>para cada base de datos hay una
función (distinta en cada caso) que te devuelve el valor del último id
automático utilizado.</FONT>
<DIV><FONT face=tahoma,sans-serif><BR></FONT></DIV>
<DIV><FONT face=tahoma,sans-serif>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.</FONT></DIV>
<DIV><FONT face=tahoma,sans-serif><BR></FONT></DIV>
<DIV><FONT face=tahoma,sans-serif><A
href="http://www.firebirdfaq.org/faq243/">http://www.firebirdfaq.org/faq243/</A><BR></FONT></DIV>
<DIV><FONT face=tahoma,sans-serif><BR></FONT></DIV></DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>2012/12/19 Paola Bruccoleri <SPAN dir=ltr><<A
href="mailto:pbruccoleri@adinet.com.uy"
target=_blank>pbruccoleri@adinet.com.uy</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>Hola todos..<BR>quizás el asunto no es muy claro, trataré
de explicar lo que quiero lograr.<BR><BR>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.<BR>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.<BR>Uso componentes zeos y firebird.<BR>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)<BR>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.<BR><BR>Agradezco cq idea<BR>muchas
gracias!<BR><BR><BR><BR><BR>______________________________<U></U>_________________<BR>Lazarus-es
mailing list<BR><A href="mailto:Lazarus-es@lists.lazarus.freepascal.org"
target=_blank>Lazarus-es@lists.lazarus.<U></U>freepascal.org</A><BR><A
href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es"
target=_blank>http://lists.lazarus.<U></U>freepascal.org/mailman/<U></U>listinfo/lazarus-es</A><BR></BLOCKQUOTE></DIV><BR><BR
clear=all>
<DIV><BR></DIV>-- <BR>
<DIV><SPAN style="FONT-FAMILY: tahoma,sans-serif">Try not to become a man of
success but rather to become a man of value. <I>Albert
Einstein</I></SPAN></DIV></DIV>
<P>
<HR>
<P></P>_______________________________________________<BR>Lazarus-es mailing
list<BR>Lazarus-es@lists.lazarus.freepascal.org<BR>http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es<BR></BLOCKQUOTE></BODY></HTML>