<!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>