Ver Mensaje Individual
  #10  
Antiguo 04-08-2011
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Reputación: 21
Luis F. Orjuela Va por buen camino
Tema solucionado....

Se debe tener presente que trabajando con componentes IBDataSet en una relación Maestro-Detalle, y existiendo una restricción del tipo "FOREIGN KEY" en la tabla detalle en la base de datos (Firebird); y en la cual se van a ingresar varios registros a la tabla detalle, se debe activar la propiedad:
Código Delphi [-]
CacheUpdates:=True;

tanto en la tabla maestra como en la tabla detalle. Y como comentaron mis amigos anteriormente en este mismo hilo, desactivar el DataSource de la tabla detalle, luego aplicar los cambios y por útlimo volver a activar el DataSource de la tabla detalle. A continuación muestro el código utilizado para aplicar los cambios:

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    With IBD_Departamento do
     begin
      Open;
      Insert;
      FieldByName('COD_DEPARTAMENTO').Value:=cxTextEdit1.Text;
      FieldByName('NOMBRE_DEPARTAMENTO').Value:=cxTextEdit2.Text;
     end;

     IBD_Municipios.DataSource:=nil;
     IBDatabase1.ApplyUpdates([IBD_Departamento,IBD_Municipios]);   //En este orden: Tabla Maestra,Tabla Detalle
     IBD_Municipios.DataSource:=DS_Departamentos;

     IBTransaction1.CommitRetaining;
end;

Y es verdad, falta documentación al respecto.

Agradezco inmensamente la colaboración de Ecfisa quien a la final tenía la solución y con base en el artículo que él hace referencia.

Saludos a todos desde BOGOTA - COLOMBIA
Sede del Campeonato Mundial SUB 2O de Football
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita