![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
procedure insert_con_returning(query:TMDOQuery);
Código:
var tVardelTipodelField: tipo; begin with query do begin Close; sql.Clear; SQL.Add('Insert into familias (cod_familia, fecha_ingreso_familia, estado_familia) '); sql.Add('Select gen_id(Select ibe$log, 1), current_timestamp, '); sql.Add('''A'' From rdb$database '); sql.Add('returning cod_familia '); try ExecSQL; Código:
tVardelTipodelField := FieldbyName('cod_familia').as....;
raise; end; end; end; |
|
#2
|
||||
|
||||
|
Hola Combat
Al hacer lo que sugieres me sale el siguiente error: query: Field 'cod_familia' not found
__________________
Uno es responsable de lo que hace y de lo que omite hacer. Última edición por santiago14 fecha: 02-09-2010 a las 16:03:49. Razón: Errores de ortografía |
|
#3
|
|||
|
|||
|
bueno y si en lugar de execsql se usa open?
|
|
#4
|
||||
|
||||
|
Usando Open me dice lo mismo: query: Field 'cod_familia' not found.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
|
#5
|
||||
|
||||
|
Ya le encontré la vuelta... un segundo por favor que ya lo publico...
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
|
#6
|
||||
|
||||
|
Bueno la cosa viene así:
Pongo el código y luego lo explico, aunque es muy claro.
En primer lugar debemos usar un TMDOSQL en lugar de un TMDOQuery, la consulta va igual, asignamos los parámetros de entrada con Params.ByName. Hacemos ExecQuery en lugar de ExecSQL y recuperamos el valor a través de FieldByName... Bueno esto funcionó bien. Abajo pongo un Message para ver en la pantalla el id devuelto. Con eso podemos recuperar de una sola vuelta los valores generados por gen_id sin tener que hacer cosas raras. Espero haber ayudado, gracias a todos por los aportes. Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
|
#7
|
||||
|
||||
|
Hola Amigos como estan.. Estoy tratando de Recuperar el valor del returning.
Me emocione al ver que lo han logrado con el MDO. Pero yo utilizo DELPHI XE y Firebird 2.5 y al parecer no existen mas los componentes MDO para el XE de delphi.. alguna sugerencia? he buscado mucho y no lo encuentro... ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Funcionamiento de la Clausula Returning | Ricardojosep | Firebird e Interbase | 4 | 01-02-2010 01:14:01 |
| ClientDataSet y returning de Firebird | jconnor82 | Firebird e Interbase | 0 | 10-11-2009 03:20:47 |
| Recuperar un valor de una tabla | Pollo2004 | Varios | 3 | 10-10-2008 13:40:50 |
| Como recuperar el valor de una variable en un ciclo... | Arturo | Varios | 2 | 10-11-2006 18:33:52 |
| ¿Como recuperar un valor de un campo autoincrementable? | SyncMaster | Firebird e Interbase | 3 | 11-05-2004 08:08:04 |
|