Normalmente hay dos formas de enfocar este problema.
1) Cada operación que realizas en las líneas de detalle o en la cabecera (normalmente se modifica al modificar las líneas de detalle) se guarda en base de Datos.
2) Trabajar en memoria (tabla en memoria o Tclientdataset, por ejemplo) y sólo guardar la factura en Base de Datos cuando se acaba toda la factura.
El primero tiene el inconveniente de que haces muchas operaciones en Base de Datos respecto al segundo, pero si por lo que sea a medio trabajo se apaga la máquina, tendrás guaradados todos los datos hasta ese momento (media factura), mientras que con el segundo sistema no.
Puede haber un intermedio, que es trabajar en memoria, e ir guardando una copia de los datos en local (para evitar pérdidas); Una vez acabado se guarda en Base de datos y se elimina la copia en local. Te evita pérdidas de datos, pero ańade complejidad al asunto.
|