Virtual Data Access Components
Virtual Data Access Components (VirtualDAC, formerly known as VirtualTable), is a library of components that extends data processing capabilities in Delphi and C++Builder on Windows, Linux, macOS, iOS and Android for both 32-bit and 64-bit platforms. VirtualDAC consists of components that provides such capabilities as working with non-tabular data, performing SQL-queries to data in memory or to data from sources in different RDBMS'es etc., that are not available for standard data access components.
The TVirtualQuery component is used to retrieve data with SQL queries from sources, that are any TDataSet descendants. Due to this, you can build complex SQL queries to in-memory data (data sources are TVirtualTable, TVirtualDataSet or another TVirtualQuery) or to data stored in different RDBMS'es (data sources can be TUniQuery, TOraQuery, TMSQuery, TMyQuery, etc. at the same time).
The TVirtualTable component represents an in-memory data storage that does not have linked data files. TVirtualTable allows to load data from a XML or CSV file, or from an existing dataset, and then wraps the data in the usual way, as in any TDataSet descendant.
The TVirtualDataSet component is data wrapper that doesn't store data in memory and interacts with data using event handlers. It allows to represent arbitrary data (arrays, lists, objects, etc.) as TDataSet descendants and link it with any DB-aware components to display data or modify it.
Cross-Platform Solution for Delphi and C++Builder
VirtualDAC is a cross-platform solution for developing applications using various IDEs: RAD Studio, Delphi and C++Builder on Windows, macOS, iOS, Android, for both 32-bit and 64-bit platforms. VirtualDAC also provides support for the FireMonkey platform, which allows you to develop visually spectacular high-performance desktop and mobile native applications.
Advanced Design-Time Editors
We offer various design-time editors, that provide convenient interface and rich facilities for both creating TVirtualTable fields and filling them with data in design-time, that can be saved in dfm or a file afterwards.