Ver Mensaje Individual
  #2  
Antiguo 27-10-2006
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 276
Reputación: 21
afxe Va por buen camino
Normalidad ante todo.

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.
Responder Con Cita