Virtual Data Access Components
Virtual Data Access Components icon

Virtual Data Access Components

by Devart
$79.95
Version
15.1.0
License
Shareware
Trial Limitations
60-day trial for evaluation only, not for production use; the download needs a free Devart account
Operating Systems
Target platforms: Windows 32-bit, 64-bit and ARM64EC, macOS 64-bit and Apple Silicon, Linux 64-bit, iOS 64-bit, Android 32-bit and 64-bit
System Requirements
RAD Studio, Delphi or C++Builder 6 to 13 Florence (all editions, including Community), or Lazarus 4.8 with Free Pascal 3.2.2 (Standard with Source Code). No database client needed
File Size
39.36 MB
Release Date
9/29/2026
Last Updated
11/13/2026
1005 views 0 downloads
SQL queries on in-memory data and any TDataSet for Delphi and C++Builder

Virtual Data Access Components (VirtualDAC): SQL Queries on In-Memory Data and Any TDataSet

Virtual Data Access Components (VirtualDAC), formerly VirtualTable, is a Devart component library that lets Delphi, C++Builder and Lazarus code run SQL queries against datasets in memory, including joins across datasets that come from different database servers. The Standard edition costs $79.95 at checkout for one developer with a year of updates, and a free Express edition covers the in-memory table on its own.

Every Delphi developer eventually has data that isn't in a database: a list of objects, a JSON import, two result sets from two servers that need joining for one report. VirtualDAC's answer is to treat them all as tables and let you write a SELECT, instead of looping through datasets by hand.

Quick facts

  • Version: 15.1.0, released September 29, 2026
  • Developer: Devart
  • Components: TVirtualQuery (SQL on any TDataSet), TVirtualTable (in-memory table), TVirtualDataSet (wraps arrays, lists and objects)
  • SQL dialect: almost the full SQLite dialect
  • IDEs: Delphi and C++Builder 6 to 13 Florence, every edition including Community; Lazarus 4.8 with Free Pascal 3.2.2 (Standard with Source Code)
  • Target platforms: Windows 32-bit, 64-bit and ARM64EC, macOS 64-bit and Apple Silicon, Linux 64-bit, iOS 64-bit, Android 32-bit and 64-bit
  • Price: Express free, Standard $79.95, Standard with Source Code $149.95, each paid edition with one year of updates and support
  • Trial: 60 days, for evaluation only; the download needs a free Devart account
  • Guarantee: 60-day money-back guarantee
  • What we checked: on November 13, 2026, the order page priced the default VirtualDAC order (Standard, single developer, 1 year of updates) at $79.95, with the yearly renewal listed at $39.95 before tax; the download page listed version 15.1.0 with a 39.36 MB trial installer for RAD Studio 13 Florence. We didn't run queries with it.

Before you buy: you may already own part of it

The free VirtualDAC Express edition includes TVirtualTable, and Devart's other DACs, such as LiteDAC, already ship TVirtualTable and TVirtualDataSet. What you pay for in Standard is TVirtualQuery, the SQL engine over datasets, plus TVirtualDataSet if you don't have it, and Linux and Android targets for Express users. If all you need is a memory table, start with Express.

Download Free TrialBuy Now

Overview

VirtualDAC started life as Devart's free VirtualTable component and grew into a small library of three components. None of them connects to a database server. Instead they work with data your program already holds: TVirtualTable stores rows in memory, TVirtualDataSet presents your own structures as a dataset, and TVirtualQuery runs SQL over any combination of TDataSet descendants, whether they're VirtualDAC's own, a TUniQuery from UniDAC, a TOraQuery and a TMSQuery from two different servers, or third-party memory tables.

Because every result is a normal TDataSet, grids, reports and data-aware controls work with it as with any query. Devart updates VirtualDAC on the same schedule as its other DACs; version 15.0 in March 2026 added RAD Studio 13 Florence and the Arm64EC target, and 15.1.0 in September 2026 added Florence Release 2 and Lazarus 4.8.

Features

TVirtualQuery: SQL across datasets from different servers

VirtualDAC's TVirtualQuery takes a collection of source datasets, gives each a table name, and runs SQL against them, using almost the whole SQLite dialect: joins, grouping, ordering, parameters and macros, and INSERT, UPDATE and DELETE on the sources. One query can join an Oracle result with a SQL Server result, as in Devart's own example below, without a linked server or a temporary table.

VirtualDAC TVirtualQuery joining an Oracle query and a SQL Server query, with the result in a Delphi form grid

Devart's diagram: a TVirtualQuery joins an OraQuery (EMP) and an MSQuery (DEPT), and the result appears in a design-time grid.

TVirtualTable: an in-memory table that saves itself

VirtualDAC's TVirtualTable is a database-independent table held in memory. You can define fields and enter rows at design time and keep them in the form file, load and save XML or JSON at run time, copy data in from any dataset, and add or remove fields on a table that already has data. Sorting, filtering (including on calculated and lookup fields), master/detail links and record locating all work locally.

TVirtualDataSet: show your objects in a grid

VirtualDAC's TVirtualDataSet doesn't store data. It asks your event handlers for field values, so an array, a TList or a list of business objects appears as a dataset that a DBGrid can show and edit with the usual TDataSet methods.

VirtualDAC TVirtualDataSet showing a Delphi TDept class as rows in a grid

Devart's illustration: a TDept class declaration and the same department records shown through a TVirtualDataSet in a design-time grid.

Design-time editors and cross-platform builds

VirtualDAC includes editors for creating fields and filling a TVirtualTable at design time, the DataSet Manager, and SynEdit syntax highlighting for SQL. It builds VCL, FireMonkey and Lazarus LCL applications for Windows, macOS, Linux, iOS and Android, and needs no database client on the target machine.

Benefits

  • Less loop code. A join, a GROUP BY or a filtered UPDATE over data in memory becomes one SQL statement instead of nested loops over datasets.
  • Cross-server reports without a staging database. Results from two servers can be combined in the client.
  • Objects in data-aware controls. Business objects show in grids and edit forms without copying them into a memory table first.
  • Cheap entry. At $79.95 it's one of Devart's least expensive components, and the in-memory table is free.

Real-World Uses

  • A report across two systems. Customer records from SQL Server and order history from Oracle are joined in a TVirtualQuery and fed to a report.
  • Querying an import file. A JSON file loaded into a TVirtualTable is checked with SQL (duplicates, totals by group) before it's written to the real database.
  • Offline data on a mobile app. A FireMonkey app keeps a small reference table in a TVirtualTable saved as JSON, with no database engine on the device.
  • Replacing an old memory-query tool. Code built on an unmaintained in-memory SQL component moves to TVirtualQuery.

Who It's For, and Who Should Skip It

VirtualDAC is for Delphi and C++Builder developers who keep data in memory or in datasets from several sources and want SQL over it, especially those already using Devart's DACs or UniDAC, whose datasets VirtualQuery works with directly.

Skip it if:

  • You only need an in-memory table. VirtualDAC Express is free, and FireDAC's TFDMemTable comes with RAD Studio.
  • You already use FireDAC heavily. FireDAC's Local SQL feature also runs SQL over datasets, so check whether it covers your case first.
  • Your joins are large and your sources are third-party memory tables. See the performance reports below and test with your own data volumes.
  • You need data stored on disk with transactions. That's a job for an embedded database such as SQLite with LiteDAC.

Usage Guide

  1. Sign in to (or create) a free Devart account, open the VirtualDAC download page and pick the Standard trial for your IDE (or the Express installer for the free edition).
  2. Close the IDE and run the installer. Update other Devart DACs to the same release first, because they share base packages.
  3. Drop a TVirtualTable on a form, open its field editor to add fields, and enter or load data.
  4. Drop a TVirtualQuery, open its SourceDataSets collection, add each source dataset and give it a TableName.
  5. Write SQL against those table names in the SQL property, link a data source and a grid, and open the query.
  6. For large results, look at the FetchAll option and keep sources in TVirtualTable where possible.

Where it falls short

  • Joins over third-party memory tables can be slow. A user replacing TxQuery reported a two-table join of about 26,000 rows from kbmMemTable taking minutes in TVirtualQuery against under 2 seconds in TxQuery. Devart's later builds made it as fast as TxQuery when the data sat in TVirtualTables, but it was still 10 to 20 times slower with kbmMemTable sources.
  • Edge cases with other components. The same user found DELETE with an IN list removing only one row from a kbmMemTable source, while it worked on TVirtualTable. Devart fixed earlier DELETE bugs in nightly builds, but non-Devart sources get the least testing.
  • Express vs Standard is confusing. Devart's product page and its editions matrix disagree on whether Express includes TVirtualDataSet; the matrix lists TVirtualTable only.
  • Lazarus costs extra. Lazarus and Free Pascal need Standard with Source Code ($149.95).

What Users Say

VirtualDAC is a small, specialist component, and review sites don't list user ratings for it. The fullest public account of using it is a long thread on Devart's forum from a developer who replaced TxQuery with TVirtualQuery in 2017.

Replacing TxQuery (Devart forum, 2017)

On single-table queries, the developer found TVirtualQuery "significantly FASTER than TxQuery on SELECT statements against a SINGLE table."

Joins were another story at first: "I am finding TVirtualQuery is unusable with multi-table SELECT statements."

After Devart sent improved builds, he wrote: "With the latest version if I use TVirtualTables to hold the data, it is as fast as TxQuery using TkbmMemTable. If I use TkbmMemTable to hold the data with TVirtualQuery, it is 10 to 20 times SLOWER."

Along the way he also wrote: "I really appreciate the great product and support y'all are providing!"

How Devart responded

In the DELETE bug thread, Devart's support reproduced the problem within days: "We have reproduced the problem and fixed the bug. The fix will be included in the next VirtualDAC build." Nightly builds were offered to licensed users in both threads.

The picture from the few public reports: the components do what they promise, Devart's support turns bugs around quickly, and performance depends heavily on keeping your source data in VirtualDAC's own TVirtualTable. Test your largest join in the trial before you commit.

Comparisons

VirtualDAC vs FireDAC Local SQL and TFDMemTable

FireDAC, included with RAD Studio, has its own memory table and a Local SQL feature for querying datasets, so for FireDAC-based projects it's the obvious first choice. VirtualDAC makes more sense when your datasets come from Devart's DACs or UniDAC, when you need Delphi versions older than FireDAC, or when you want TVirtualDataSet's object wrapping.

VirtualDAC vs TxQuery and kbmMemTable

TxQuery is an older in-memory SQL component and kbmMemTable a popular memory table. VirtualDAC is actively maintained, targets every current platform, and handles single-table queries quickly; for heavy joins over kbmMemTable data, the forum reports above suggest copying data into TVirtualTable first.

Editions and Pricing

Both paid editions use the one Buy Now button below: you choose the edition, the license type (Single, Team or Site) and 1, 2 or 3 years of updates on the order page. Prices are for one developer with one year of updates.

Edition Price Components Platforms
Express Free TVirtualTable Windows, macOS, iOS
Standard (default order) $79.95 TVirtualTable, TVirtualDataSet, TVirtualQuery Windows, macOS, Linux, iOS, Android
Standard with Source Code $149.95 Same, with source code Same, plus Lazarus and Free Pascal

A Team or Site license, more years of updates, and Priority Support raise the price on the order page. The license stays valid after the year ends.

FAQs

Can VirtualDAC query datasets from UniDAC or FireDAC?

Yes. VirtualDAC's TVirtualQuery accepts any TDataSet descendant as a source, so UniDAC, other Devart DACs, FireDAC datasets and third-party memory tables all work. Devart's own TVirtualTable gives the best join performance.

Which SQL syntax does TVirtualQuery use?

VirtualDAC's TVirtualQuery supports almost the complete SQLite SQL dialect, with parameters and macros, so SQLite documentation is the reference for functions and syntax.

Is VirtualDAC the same as the old free VirtualTable?

Yes, VirtualDAC is the renamed and expanded VirtualTable. The free part lives on as VirtualDAC Express; TVirtualQuery is new and paid.

Can I keep using VirtualDAC after my year of updates ends?

Yes. VirtualDAC licenses are perpetual. Renewal (listed at $39.95 a year before tax for Standard on November 13, 2026) brings new versions and support.

Do my customers need a VirtualDAC license?

No. VirtualDAC is royalty-free per developer, team or site: compiled applications that use it can be distributed freely.

Can I use the VirtualDAC trial in production?

No. VirtualDAC's 60-day trial is for evaluation only. Devart's 60-day money-back guarantee covers a paid license that doesn't work out.

System Requirements

  • IDE: RAD Studio, Delphi or C++Builder 6 through 13 Florence (13 needs Release 2), or Lazarus 4.8 with Free Pascal 3.2.2 for the source-code edition
  • Targets: Windows 32-bit, 64-bit and ARM64EC; macOS 64-bit and Apple Silicon; Linux 64-bit; iOS 64-bit; Android 32-bit and 64-bit
  • Database: none needed; works on data in memory and on any TDataSet
  • Installer: about 39 MB for RAD Studio 13 Florence

Conclusion

VirtualDAC Standard is worth $79.95 if you regularly combine or reshape data that's already in memory, especially datasets from Devart's DACs or from two different servers. TVirtualQuery is the one reason to buy it: SQL over datasets with almost the full SQLite dialect. The main reasons not to: if all you need is a memory table, Express is free, and FireDAC users already have Local SQL. Load your biggest join into the 60-day trial before buying, and keep the data in TVirtualTable for speed.

Download Free TrialBuy Now

Submit Your Review
Your Name:
Rating:
(Please click on one of the stars to indicate your rating.)
One Line Summary:
Review:
No html tags are allowed.
Submit Review
We may earn a commission when you buy through links on this page.
Copyright © 2026, Ivertech. All rights reserved.