According to this page, it\'s possible to use TClientDataset as an in-memory dataset, completely independent of any actual databases or files. It describes how
My preference is to actually manage the dataset as XML. You can use the designer tools to create the basic structure and then save it to disk. This allows it to be managed outside of the executable, compiled in as a resource, or separately managed in version control.
When doing it in this manner you can use LoadFromFile/Stream and the Save variants. Remember to make proper use of LogChanges and MergeChangeLog depending on your usage.