Estoy pasando mi progs de dbf a sql, sufriendo pero ahí vamos, tengo una duda que espero me lo puedan aclarar.
En un sistema de facturación, a una factura existente se le llama para cambiar los datos de la cabecera y/o el detalle (pudiendo este ultimo aumentar, modificar y/o eliminar las filas del detalle)
En mi sistema de facturación yo muestro la facturas con xbrowse con la ayuda de una tabla temporal que se carga en memoria con datos proveniente de la bd.
En dbf al momento de grabar una factura modificada yo busco la factura existente y le hago un replace y para el detalle eliminaba lo que había en la bd y luego hacia un append blank con los detalles proveniente de la tabla temporal.
- Code: Select all Expand view RUN
Cabecera->(dbseek (nrofac))
Replace cabecera->monto := nmonto
detalle->(dbseek(nrofac))
dO while detalle->nrofac = nrofac
detalle->(dbdelete())
skip
enddo
do while temporal->numfac=nrofac
append blank
detalle->cant := temporal->cant
detalle->punit := temporal->punit
eno
Con sql lo hago asi
- Code: Select all Expand view RUN
Update cabecera set monto=nmonto where numfac=nrofac
delete from detalle where numfac=nrofac // borro la data que hay en la bd
Insert into detalle(numfac, cant, punit) select numfac, cant, punit from temporal where numfac = nrofac
Mi pregunta es esta correcto como lo estoy haciendo o existe otra forma de programarlo con sql?