Por Francisco San Pablo
© Copyrights 1998 by FoxPress, All rights reserved
FoxPress, Febrero 1998
Usar conjuntamente transacciones y buffer, forma una poderosa sociedad que puede hacer la vida al diseñador menos complicada.
A continuación muestro un código de ejemplos
BEGIN TRANSACTION ********************************** * Prueba si puede actualizar en * tabla padre ********************************** IF TABLEUPDATE(0, .F., Orders) ********************************** * Tabla padre se actualizó * correctamente, prueba * si puede actualizar tabla hija ********************************** IF TABLEUPDATE(2, .F., OrdItems) ********************************** * Tabla hija se actualiza * correctamente, finaliza * la transacción ********************************** END TRANSACTION WAIT WINDOW ; "Cambios salvados" TIMEOUT 1 ELSE ********************************** * Problemas actualizando el hijo, * pero el padre * ya está actualizado ********************************* = AERROR(aErrorArray) CR = CHR(13) cMsg = "Actualizando la tabla hija "+; "ha ocurrido un error."+CR+CR+ ; "Error: "+aErrorArray(1)+CR+CR+; aErrorArray(2) nType = MB_ICONINFORMATION+MB_OK cTitle = "Problemas con ; actualización!" ********************************* * Descarta todos los cambios ********************************* ROLLBACK =MESSAGEBOX(cMsg,nType,cTitle) ENDIF ELSE ********************************** * Problemas actualizando tabla padre ********************************** = AERROR(aErrorArray) CR = CHR(13) cMsg = "Actualizando tabla ; padre, "+; "ha ocurrido un error.; "+CR+CR+ ; "Error: "+aErrorArray(1); +CR+CR+; aErrorArray(2) nType = MB_ICONINFORMATION+MB_OK cTitle = "Problemas con ; actualización!" ********************************** * Descarta los cambios ********************************** ROLLBACK =MESSAGEBOX(cMsg,nType,cTitle) ENDIF Espero que os sirva.