MyChangeString = ... lcResult = goDataHandler.Save(MyChangeString, <b>.F.</b>) * data about changed fields sent as XML string in MyChangeString * COM object updates data using that string and return result - * empty string - successful, non-empty string - failed. * if failed because something changed on server, we ask user to overwrite changes * lcResult also contains description of fields and their values that are * changed by other user. We use this to show to user. * You can also parse it and show confirmation dialog for each field if required IF !empty(lcResult) IF LEFT(lcResult,7) = 'CHANGED' if Messagebox("Data on server changed by another user. Please verify if you need to overwrite changes."+ ; CRLF + lcResult, MB_OkCancel+MB_Question) = IDOk && save with overwriting lcResult = goDataHandler.Save(MyChangeString, <b>.T.</b>) if !empty(lcResult) && error updating data endif endif ENDIF ELSE && error... ENDIF>