This is the exact reason that TClientDataSet
was written. It allows you to take a snapshot of data, store it in memory, update it as if it were an actual dataset, and then easily apply those updates back to the original database.
There's a tutorial here that's not too bad. You can find another one at Scalabium, and a series at the Embarcadero site that Cary Jensen later turned into a book (you can find it at Amazon - don't have a link handy).