Ver Mensaje Individual
  #21  
Antiguo 17-01-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Código Delphi [-]
DM.TblPedidos.First;
  while not DM.TblPedidos.Eof do
  begin
    DM.TblPedidos_seg.Insert;
    DM.TblPedidos_seg.FieldByName('Id').AsString := DM.TblPedidos.fieldbyname('Id').AsString;
...
//   no puedes empezar a grabar los detalles, porque la maestra todavia
//   no se ha guardado.
    dm.TblPedidos_seg.Post; //<<<< ahora si se ha guardado el maestro.
//                                 ya podemos empezar con los detalles.
    dm.tblArticulosPedidos.First; // claro, empezamos en el primero.
    while not DM.TblArticulosPedido.Eof do
      begin
        DM.TblArticulosPedido_seg.Insert;
        DM.TblArticulosPedido_seg.FieldByName('Articulo').AsString := DM.TblArticulosPedido.fieldbyname('Articulo').AsString;
...
        DM.TblArticulosPedido_seg.Post;
        DM.TblArticulosPedido_seg.Next; <<<<<end;
    DM.TblPedidos_seg.Post;<<<<<<<<< esto sobra
    DM.TblPedidos_seg.Next;<<<<<<<<< esto sobra
    DM.TblPedidos.Next; // exacto, la misma tabla del bucle.
  end;

Solo me queda un par de dudas.

No sé ni me voy a parar en mirar que campos son los que actuan en la relación maestra-detalle y cuales son claves primarias. Tú debes saberlo exactamente y debes tener mucho cuidado. Si en tblPedidos-tblArticulosPedido lo une un código que tiene el valor 10, puede que ese ya exista en tblPedidos_seg No sé pero es algo a tener en cuenta.

Para los indices, asegurate de que todas las tablas tengan en el evento afterpost ttable.FlushBuffers.

saludos y espero se entienda
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita