Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Wink No puedo tomar campo generado automáticamente

Hola Foreros: Tengo una consulta que realizar:

Tengo en una base Firebird dos tablas que deseo actualizar en el mismo tiempo pero una debe agregar en un campo el ID de la otra que se genera automáticamente primero.

El caso es el siguiente

Una tabla que tiene la lista de personal,

Id
Legajo
Apellido
Nombre
....

otra guarda las licencias

Id
IdAgente
IdInasistencia // Aqui debo cargar el ID de la tabla de abajo
Tipo
Fecha
....

y otra los días de inasistencia


ID
IdAgente
Periodo
FaltaJust
FaltaInjust
TardeJust
TardeInjust
...

esta ultima guardara tanto las licencias como las inasistencias justificadas o injustificadas) para calcular al año las veces que el empleado a faltado.
Como procedimiento cuando le doy el guardar grabo primero la de inasistencias para que genere el ID (Lo cual lo hace perfectamente) pero no lo puedo tomar (da 0) para cargárselo como referencia a licencias. Espero ser lo bastante claro como para poder tener una solución.-

Fragmento de codigo

Código Delphi [-]
if MessageDlg('¿Confirma el alta de la licencia?',mtConfirmation,mbYesNo,0) = mrYes then
     Begin
       Dm.Inasistencias.FieldByName('IDAgente').AsInteger := CodigoAgente;
       Dm.Inasistencias.FieldByName('tipo').AsString := CTipo.Items.Strings[CTipo.ItemIndex];
       Dm.Inasistencias.FieldByName('FaltaJust').AsInteger := StrToInt(DBEdit1.Text);
       Dm.Inasistencias.FieldByName('Observaciones').AsString := DBEdit2.Text;
       // Las tres lineas siguientes son a modo de desesperacion para ver si me da el bendito ID que genero  
       Dm.Inasistencias.Post;                   
       Dm.Transaccion.CommitRetaining;
       Dm.Inasistencias.Refresh;
       ShowMessage(Dm.Inasistencias.FieldByName('Id').AsString);  // muestra vacio
       Dm.Licencia.FieldByName('IDAGENTE').AsInteger := CodigoAgente;
       Dm.Licencia.FieldByName('IDInasistencia').AsInteger := Dm.Inasistencias.FieldByName('ID').AsInteger;
       Dm.Licencia.FieldByName('Fecha').AsDateTime := Fsolic.DateTime;
       Dm.Licencia.FieldByName('FDesde').AsDateTime := Fdesde.DateTime;
       Dm.Licencia.FieldByName('FHAsta').AsDateTime := FHasta.DateTime;
       Dm.Licencia.Post;
       Dm.Transaccion.CommitRetaining;
  end;

Gracias
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar Campo Fecha Automaticamente JUGUE Firebird e Interbase 3 30-09-2008 22:30:27
Tomar Valor de un campo a una variable pmtzg Conexión con bases de datos 5 28-05-2008 20:39:03
Puedo tomar una frecuencia de audio y convertirla en un dato Johnnywin Varios 5 29-09-2006 13:25:54
Como obtener el maximo numero generado en campo autonumerico makinita C++ Builder 4 11-09-2006 11:14:50
¿Cómo puedo tomar la extensión de un archivo? nuri Varios 5 21-07-2005 11:12:59


La franja horaria es GMT +2. Ahora son las 00:57:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi