* Open tables, and enable buffering select 0 use Table1 CursorSetProp("Buffering", 5) select 0 use Table2 CursorSetProp("Buffering", 5) * (Repeat for other tables where you might do changes) begin transaction * (do some changes in Table1, and then:) local llSuccess llSuccess = TableUpdate() if not llSuccess * Show information about the error local laMyError aerror(laMyError) MessageBox("Error saving Table1, error #" + trans(laMyError(1)); + laMyError(2)) && Shows error number and error message endif if llSuccess * (do some changes in Table2, and then:) llSuccess = TableUpdate() ... etc. endif * Repeat for Table3, etc. if llSuccess end transaction && This will confirm all the changes else rollback && This will undo changes to all the tables endif