Hallo und Willkommen in der
DP 
,
eine IMO recht elegante Möglichkeit wäre die Verwendung eines ClientDatasets. Einen zwar etwas älteren, aber nicht schlechten (soweit ich das nach einem schnellen Überfliegen beurteilen kann) Artikel dazu findest Du hier:
http://edn.embarcadero.com/article/22571, insbesondere der Abschnitt "Reconciling data".