Tour Trial Pricing Docs Support |

Data Abstract for Delphi

For almost two decades now, Data Abstract is the leading framework for secure, scalable multi-tier database access for Delphi developers.

The team behind Data Abstract grew up on Turbo Pascal, got in on Delphi on day one back on Valentine's Day 1994, and literally wrote the book on Midas and DataSnap back in the day, before putting our expertise to use to create a better, more modern and more secure way to do multi-tier.

Since its release in 2003, Data Abstract is being relied on by thousands of Delphi and C++Builder developers every day all across the globe, from single-developer shops all the way to Fortune 500 companies.

Less Clutter, with Schemas

Aren't you sick of data modules with dozens or hundreds of TDataSet components that are specific to a certain database, often contain hard-coded SQL statements that are hard to maintain and test?

Data Abstract does away with this with one powerful concept: The Schema.

Schema Modeler

In Delphi, the Schema lives in a single component, but it contains all information about the data tables and commands your server exposes and is backed by a powerful editor, the Schema Modeler, that lets you visually create, maintain and test your data access.

Schema Modeler

Schema Modeler shows you both a live view into your database(s) and – shown above – the tables you have chosen to expose ion your server. You can add and update tables in your schema easily via drag-and-drop.

You decide which tables and which fields will be visible to applications, whether they can be modified, and so on. You can even change the names as they will appear to client apps, to truly abstract (see what we did there?) the real database structure – more on that, below.

Use any DAC Suite you like

Behind the scenes, Data Abstract can work with virtually any DAC component set available for Delphi, from the built-in ADO, DBX or IBX components to sophisticated and specialized third-party components such as FireDAC (which actually originated at RemObjects), SDAC, ODAC or the like.

But your Schemas are 100% DAC agnostic (and can even be 100% database agnostic, in most cases), making it really easy to switch or performance-test multiple DAC options with a single click, or even to switch database types altogether – without having to replace dozens of components manually.

See it in Action

See how easy it is to create your first Data Abstract Server, with virtually no code and component clutter, in our 8-minute introduction video:

View on RemObjects TV


SQL is the de-facto standard language for data queries, and da DA SQL brings it to the client tier, without compromising data security and integrity.

DA SQL allows you to (entirely optionally, of course) write SQL statements client-side, to express simple and complex data queries. Unlike with other systems, this SQL will not be passed through directly to the back-end database, but it gets processed and run against the schema in the middle tier – preserving all the security and data integrity you have in place, and never allowing rogue requests from a client to bypass it to access data or make changes they are not allowed to.

Of course DA SQL can be used internally, but you can also (safely) expose it to your end-user, letting them craft their own dynamic queries on the fly.

Work Online and Offline

With Data Abstract's advanced Briefcase mode, your client applications remain functional, whether they have a connection to the network or not. Chances made locally can be persisted – even across application restarts – and be applied at a later time, when the server becomes reachable again. And this entire process can be transparent to the end-user if so desired.

And sophisticated reconciliation support makes it easy to deal with the rare case where two users might have tried to apply conflicting updates – including a ready-made Reconciliation dialog your application can use as is, or built up-on.

Schema Modeler

Abstracting the Database Structure

One of the powerful benefits of Data Abstracts Schema model is that it allows you to fully abstract what your actual database looks like from what the client applications will see and interact with. This can be helpful in many scenarios:

  • Maybe you have a legacy database with ugly names, such as the all too common ALL_CAPS_WITH_UNDERSCORES format many older databases use. You can pick prettier names in your Schema, and your client developers will never have to see the ugly names.

  • Maybe you have an old and a new database that use vastly different naming conventions, but you want to create one set of client apps that can talk to either.

  • Maybe you later want to make changes to names in the database, but not break existing clients. You can keep the old name in the schema mapped to the renamed fields or tables in the back-end.

  • Maybe you have multiple very different (but conceptually similar) databases, possibly provided by different customers, and maybe even using different database types. With Data Abstract, you can write one app, that sees one database structure, that can talk to any of them.

...and many other scenarios.

Compatible With Other Platforms

Data Abstract for Delphi (and C++Builder) supports creating servers that run on Windows, Linux and macOS, as well as of course VCL, FireMonkey, and non-visual client apps for Windows, Linux, Mac, iPhone, and Android.

What's more, native Data Abstract client libraries are available for all major non-Delphi development platforms: .NET and .NET Core, Java/Android, Apple's platforms using Xcode with Objective-C and Swift or Elements, as well as for JavaScript and WebAssembly.

Data Abstract was also designed from the ground up to be wire-compatible with non-DA clients, and data from a Data Abstract server can be accessed using (sometimes less efficient and capable) open standards such as OData and REST, if needed.

Relativity Server

Data Abstract for Delphi comes with the ability to build your own middle-tier server from scratch, and add all the custom functionality to it that you need. But in many cases, DA and the schema provide everything out of the box, and there is no need for any custom code Delphi in the server, at all

For these cases, there is Relativity Server.

Relativity Server is a pre-built server application that you can deploy royalty-free to host any number of independent Data Abstract middle-tier servers, each with any number of schemas. It provides all the functionality of a custom server, without the need to build and maintain your own server project.

You can think of Relativity Server being to your middle-tier what SQL Server, Oracle, or any other database system is to your database: you just provide the actual data, you're not building your own database engine.

And of course, since Relativity Server is based on DA, you can always migrate from it to a custom server later, if you need to add custom functionality. Or migrate a custom server to Relativity, if you don't.

Try Data Abstract Now

Give Data Abstract for Delphi a try for 30 days – free and without any commitment.

You can download the trial installer from this site, below (Delphi 7 & later, as well C++Builder XE7 & later), or get it right inside your RAD Studio IDE by searching for "Data Abstract" in GetIt.


Get Your Copy Now

Join thousands of Delphi developers by taking your data access to the next level with Data Abstract for Delphi, starting at only $59 a month, or $999 for a yearly license. Data Abstract is also part of the full Suite Subscriptions.

Site licenses, volume discounts, and packages including all Data Abstract platforms are available, as well.

To stay in the loop, follow @RemObjects on Twitter.

And discuss the product or get support, in our Data Abstract forum on RemObjects Talk.

This includes full technical support during your trial period as well, of course!


How can we help?

Your Name:
Your Email Address:
Your Question:

Thank you!

Your message has been sent, and someone will get back to you soon, usually within a business day.

For technical or support questions, please also check out our RemObjects Talk support forum, as well as out other Support Options.