if !tableupdate(.F.,.F.) && when cannot update, check if reason is changes on server local lnFieldIndex, lcFieldName select MyAlias for m.lnFieldIndex = 1 to FCOUNT() m.lcFieldName = Field(m.lnFieldIndex) if type(m.lcFieldName) == 'G' && skip general fields if !(OldVal(m.lcFieldName) == CURVAL(m.lcFieldName)) * Oops - something changed on the server by another user - prompt to overwrite ... if !llOverWrite && if user answered to do not overwrite && update current value by changed value from server replace (m.lcFieldName) with CURVAL(m.lcFieldName) endif endif endif ENDFOR * WARNING - special checking for deleted records if CURVAL('Deleted()') * Oops - record already deleted by another user * ask to recover it or keep deleted ... if llRecover && if user answered to recover record && following 2 commands needed to assure correct update on server delete recall else && delete record in local buffer as well delete endif endif if !tableupdate(.T.,.F.) && error - cannot update at all endif endif