* First all of your code that does the inserts and updates, then ... LOCAL llRollBack BEGIN TRANSACTION IF NOT llRollBack AND TableUpdate(1,.F.,"TheFirstAlias") ELSE llRollBack = .T. ENDIF IF NOT llRollBack AND TableUpdate(1,.F.,"TheSecondAlias") ELSE llRollBack = .T. ENDIF IF NOT llRollBack AND TableUpdate(1,.F.,"TheThirdAlias") ELSE llRollBack = .T. ENDIF IF NOT llRollBack AND TableUpdate(1,.F.,"TheFourthAlias") ELSE llRollBack = .T. ENDIF IF llRollBack ROLLBACK * Remember the buffers are still dirty here. ELSE END TRANSACTION ENDIF