There are a number of different embedded databases that you can use with Delphi and C++Builder. InterBase ToGo and IBLite are two embedded databases offered by Embarcadero. SQLite is an embedded SQL database engine developed by the SQLite Consortium. And finally there is TFDMemTable which can save and load data from binary, XML, JSON and query through it’s LocalSQL property. Each embedded database has it’s own strengths and you can quickly deploy any of these solutions with your apps.
InterBase ToGo has encryption support on Android, IOS, OSX, and Windows. It also has no limit on the size of it’s database file or the number of transactions per connection. InterBase ToGo has a unique Change Views feature which uses InterBase multigenerational architecture to capture the changes to data. This has no performance overhead on existing transactions because it maintains a consistent view of changed data observable by other transactions. The Change Views mechanism is not dependent on its own underlying data but is based on data already stored for existing base tables or views derived from base tables. Additionally, InterBase ToGo has a lighter version with a slimmer set of features called IBLite which comes with a free unlimited deployment license.
SQLite features transactions that are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures. There is zero configuration with SQlite which means there is no setup or administration needed. SQLite implements most of SQL92 and supports table triggers and views. It is a a complete database is stored in a single cross-platform disk file. It supports massive terabyte-sized databases and gigabyte-sized strings and blobs. It can even be faster than popular client/server database engines for most common operations. There are no external dependencies and it runs on Windows, Mac OS X, iOS, and Android out of the box. The sources are in the public domain which means use for any purpose is free. It’s very powerful API allows you to extend the engine in practically all areas. Lastly SQLite achieves one of the best data access performances among other embedded, file-server, and client-server database engines used by the Delphi applications.
TFDMemTable is a FireDAC based in memory table. It has a SaveToFile functionality to save dataset data to an external file for later use. It can also use it’s LoadFromFile method to populate the dataset with data stored in an external file (that you may have saved previously). The data is not moved to a database, it is just loaded into a dataset in-memory storage. You can use both methods with three different file format: binary, XML and JSON. You could for example prototype your app on Win32 and load up data into TFDMemTable. You could then save the data out to one of the three file formats and then deploy the file with your app to Android, IOS, OSX, or Windows. Lastly you could load up the file at runtime into TFDMemTable and query against the data using the LocalSQL property.