SELECT vitems SET ORDER TO TAG ordkey IN vitems SCAN FOR vitems.clordno = Order_List.cordno * some calculations and figure out which records need to be updated IF lnOnHandQty <> 0 && update on hand qty, on order qty, and completion flag RLOCK('instock') REPLACE instock.feilda with valuea, .... instock.fieldn with valuen IN instock TABLEUPDATE(0,.T.,'instock') UNLOCK IN instock IF flag <> value RLOCK('vitems) REPLACE vitems.field with value TABLEUPDATE(0,.T.,'vitems' UNLOCK IN vitems ENDIF ENDIF ENDSCAN SELECT vitems *** Question 1. I do not understand why are these two commmands here? TABLEUPDATE(.T.)I would like to add error check the be sure records are locked and fields are updated.
SELECT vitems SET ORDER TO TAG ordkey IN vitems BEGIN TRANSACTION SCAN FOR vitems.clordno = Order_List.cordno * some calculations and figure out which records need to be updated IF lnOnHandQty <> 0 && update on hand qty, on order qty, and completion flag llRlock = RLOCK('instock') IF NOT llRlock EXIT ENDIF REPLACE instock.feilda with valuea, .... instock.fieldn with valuen IN instock TABLEUPDATE(0,.T.,'instock') UNLOCK IN instock IF flag <> value llRlock = RLOCK('vitems) IF NOT llRlock EXIT ENDIF REPLACE vitems.field with value IN vitems TABLEUPDATE(0,.T.,'vitems') ENDIF ENDIF ENDSCAN IF NOT llRlock ROLLBACK TABLEREVERT(.T.,'instock') TABLEREVERT(.T.,'vitems') ELSE llTableUpdate = TABLEUPDATE(.T.,'instock') IF NOT llTableUpdate ROLLBACK TABLEREVERT(.T.,'instock') TABLEREVERT(.T.,'vitems') ELSE llTableUpdate = TABLEUPDATE(.T.,'vitems') IF NOT llTableUpdate ROLLBACK TABLEREVERT(.T.,'instock') TABLEREVERT(.T.,'vitems') ELSE END TRANSACTION ENDIF ENDIF ENDIF UNLOCK IN instock UNLOCK IN vitems IF llRlock AND llTableUpdate WAIT WINDOW AT 20,50 'Updates accepted' ELSE WATI WINDOW AT 30,50 'Updates failed' ENDIF