Haz el tratamiento como si de paradox se tratara, es decir: Dos tablas, inserta el registro en la tabla maestra y después los registros de la tabla detalles, normalidad.
Lo único que tienes que poner atención es en el tratamiento de las transacciones, es decir, antes de comitear los detalles asegúrate que se ha comiteado la cabecera, porque si no te saltará un error de referencia de integridad. ejemplo a "grosso modo":
Cita:
ibTransaction.StartTransaction
QryCab.Append
.....
QryCab.Post
ibTransaction.CommitRetaining
QryDet.Append;
.......
QryDet.Post;
QryDet.Append;
.........
QryDet.Post
ibTransaction.Commit;
|
ó
Cita:
ibTransaction.StartTransaction
QryCab.Append
.....
QryCab.Post
QryDet.Append;
.......
QryDet.Post;
QryDet.Append;
.........
QryDet.Post
ibTransaction.Commit;
|
Parece una tontería, pero muchas veces los programadores estamos acostumbrado a ir grabando los detalles antes de la cabecera para ir realizando operaciones de acumulados, chequeos y cuenteos que puedan afectar a los datos a grabar en la cabecera.