vcl-405703-expresscrossplatformlibrary-vcl-backend-vcl-backend-supported-database-systems.md
This topic lists database engines you can use with ExpressReports and ExpressDashboards. The list includes database provider assemblies, corresponding XPO data storage adapters, and connection string examples. Each section is dedicated to an individual database management system / data management technique and includes references to corresponding step-by-step instructions.
In this topic…
You can use the TdxBackendDataSetJSONConnection component to bind TdxDashboard/TdxDashboardControl and TdxReport components to one or multiple datasets (TdxMemData, TFDTable, TFDQuery, and other TDataSet descendants).
TdxBackendDataSetJSONConnection maintains a collection of dataset links (TdxBackendDataSetCollectionItem) you can associate with TDataSource components, similar to any other data-aware VCL control (TcxGrid, for instance).
Tip
Refer to the following topic for step-by-step instructions on using in-memory JSON data with ExpressReports and ExpressDashboards: How to Use Data Source and Data Set Components.
To bind TdxDashboard/TdxDashboardControl and TdxReport components to data stored in memory (in JSON format), use the TdxBackendInMemoryJSONConnection component.
You can use the TdxBackendInMemoryJSONConnection.ConnectionString property to:
The following JSON data string example defines a simple table containing three columns ( id , Region , and Sales ) and five rows:
dxBackendInMemoryJSONConnection1.ConnectionString := 'Json=''' +
'[{"id": 1, "Region": "Asia", "Sales": 4.7685},' + // Row #1
'{"id": 2, "Region": "Australia", "Sales": 1.9576},' + // Row #2
'{"id": 3, "Region": "Europe", "Sales": 3.3579},' + // Row #3
'{"id": 4, "Region": "North America", "Sales": 3.7477},' + // Row #4
'{"id": 5, "Region": "South America", "Sales": 1.8237}]'''; // Row #5
dxBackendInMemoryJSONConnection1->ConnectionString = "Json=\"\""
L"[{\"id\": 1, \"Region\": \"Asia\", \"Sales\": 1.9576}," // Row #1
L"{\"id\": 2, \"Region\": \"Australia\", \"Sales\": 1.9576}," // Row #2
L"{\"id\": 3, \"Region\": \"Europe\", \"Sales\": 3.3579}," // Row #3
L"{\"id\": 4, \"Region\": \"North America\", \"Sales\": 3.7477}," // Row #4
L"{\"id\": 5, \"Region\": \"South America\", \"Sales\": 1.8237}]\"\"" // Row #5
Tip
Alternatively, you can call the TdxBackendCustomInMemoryJSONConnection.SetJSONValue procedure and pass a JSON data string as a parameter. Refer to the procedure description for detailed information and a code example.
dxBackendInMemoryJSONConnection1.ConnectionString :=
'Uri=https://northwind.netcore.io/customers.json;' + // Specifies the path to a source JSON file
'Username=user;' + // Specifies a valid user name
'Password=pwd;' + // Specifies the corresponding password for the user name
'MyAuthHeader1=secretToken1;MyAuthHeader2=secretToken2;' + // Specifies authentication tokens
'query:id=123456;query:name=MyName;' // Specifies the required query ID and name
dxBackendInMemoryJSONConnection1->ConnectionString =
L"Uri=https://northwind.netcore.io/customers.json;" // Specifies the path to a source JSON file
L"Username=user;" // Specifies a valid user name
L"Password=pwd;" // Specifies the corresponding password for the user name
L"MyAuthHeader1=secretToken1;MyAuthHeader2=secretToken2;" // Specifies authentication tokens
L"query:id=123456;query:name=MyName;" // Specifies the required query ID and name
Tip
Refer to the following topic for step-by-step instructions on using in-memory JSON data with ExpressReports and ExpressDashboards: How to Use Memory-Based Data Sources.
SQLite is an open-source relational database engine.
Tip
The VCL Backend implementation has built-in support for Microsoft SQL, Azure SQL, and SQLite database engines.
You can use the TdxBackendDatabaseSQLConnection component to connect TdxDashboard/TdxDashboardControl and TdxReport components to these databases without additional dependencies and extra configuration.
|
Version
|
Database Provider Assemblies
|
NuGet Packages
| | --- | --- | --- | |
SQLite 3
|
Microsoft.Data.SQLite.dll 8.*
|
|
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=SQLite;' + // Specifies the database engine type
'Data Source=C:\Test\MyDatabase.sqlite'; // Specifies the path to a local database file
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=SQLite;" // Specifies the database engine type
L"Data Source=C:\\Test\\MyDatabase.sqlite"; // Specifies the path to a local database file
Tip
Refer to the following topic for step-by-step instructions on using SQLite databases with ExpressReports and ExpressDashboards: How to Use SQLite.
Microsoft SQL Server and Azure SQL Database are proprietary relational database management systems developed by Microsoft.
Tip
The VCL Backend implementation has built-in support for Microsoft SQL , Azure SQL , and SQLite database engines.
You can use the TdxBackendDatabaseSQLConnection component to connect TdxDashboard/TdxDashboardControl and TdxReport components to these databases without additional dependencies and extra configuration.
|
Version
|
Database Provider Assemblies
|
NuGet Packages
| | --- | --- | --- | |
Microsoft SQL Server 7.0, 2000, 2005, 2008, 2012, 2014, 2016, 2019, 2022, 2025, Azure™ SQL
|
Microsoft.Data.SqlClient.dll 5.*
|
|
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=MSSqlServer;' + // Specifies the database engine type
'Data Source=(local);' + // Specifies the database host
'User ID=username;' + // Specifies a valid user name
'Password=password;' + // Specifies the corresponding password for the user name
'Initial Catalog=database;' + // Specifies the initial catalog for the target database
'Persist Security Info=true'; // Enables the "Persist Security Info" flag
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=MSSqlServer;" // Specifies the database engine type
L"Data Source=(local);" // Specifies the database host
L"User ID=username;" // Specifies a valid user name
L"Password=password;" // Specifies the corresponding password for the user name
L"Initial Catalog=database;" // Specifies the initial catalog for the target database
L"Persist Security Info=true;" // Enables the "Persist Security Info" flag
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=MSSqlServer;' + // Specifies the database engine type
'Data Source=tcp:YourServerName.database.windows.net;' + // Specifies the database host
'User Id=azureuser;' + // Specifies a valid user name
'Password=password;' + // Specifies the corresponding password for the user name
'Initial Catalog=DXApplication384'; // Specifies the initial catalog for the target database
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=MSSqlServer;" // Specifies the database engine type
L"Data Source=tcp:YourServerName.database.windows.net;" // Specifies the database host
L"User Id=azureuser;" // Specifies a valid user name
L"Password=password;" // Specifies the corresponding password for the user name
L"Initial Catalog=DXApplication384"; // Specifies the initial catalog for the target database
Tip
Refer to the following topic for step-by-step instructions on using Microsoft SQL Server/Azure SQL databases with ExpressReports and ExpressDashboards: How to Use Microsoft SQL Server/Azure SQL Databases.
PostgreSQL is an open-source relational database management system.
| Versions | Database Provider Assembly | NuGet Package |
|---|---|---|
| PostgreSQL 7, 8, 9, 10, 11, 12, 15, 16, 17, 18 | Npgsql.dll 9.* | Npgsql |
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=Postgres;' + // Specifies the database engine type
'Server=127.0.0.1;' + // Specifies the database host IP address
'User ID=myuser;' + // Specifies a valid user name
'Password=123;' + // Specifies the corresponding password for the user name
'Database=postgres;' + // Specifies the target database name
'Encoding=UNICODE'; // Sets UTF-8 as the required encoding
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=Postgres;" // Specifies the database engine type
L"Server=127.0.0.1;" // Specifies the database host IP address
L"User ID=myuser;" // Specifies a valid user name
L"Password=123;" // Specifies the corresponding password for the user name
L"Database=postgres;" // Specifies the target database name
L"Encoding=UNICODE"; // Sets UTF-8 as the required encoding
Tip
Refer to the following topic for step-by-step instructions on using PostgreSQL databases with ExpressReports and ExpressDashboards: How to Use PostgreSQL.
Oracle Database is a proprietary multi-model database management system developed by the Oracle Corporation.
| Versions | Database Provider Assembly | NuGet Package |
|---|---|---|
| Oracle 9i, 10g, 11g, 12c, 18c, 21c, 23ai, 26ai | Oracle.ManagedDataAccessCore.dll 23.* | Oracle.ManagedDataAccess.Core |
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=Oracle;' + // Specifies the database engine type
'Data Source=TORCL;' + // Specifies the target database
'User ID=MyUserName;' + // Specifies a valid user name
'Password=MyPassword'; // Specifies the corresponding password for the user name
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=Oracle;" // Specifies the database engine type
L"Data Source=TORCL;" // Specifies the target database
L"User ID=MyUserName;" // Specifies a valid user name
L"Password=MyPassword;" // Specifies the corresponding password for the user name
Tip
Refer to the following topic for step-by-step instructions on using Oracle databases with ExpressReports and ExpressDashboards: How to Use Oracle Databases.
MySQL is an open-source relational database management system developed by the Oracle Corporation.
|
Version
|
Database Provider Assemblies
|
NuGet Packages
| | --- | --- | --- | |
MySQL 5.0, 5.1, 5.7, 8.0.45, 8.4.8, 9.6.0
|
|
|
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=MySql;' + // Specifies the database engine type
'Server=127.0.0.1;' + // Specifies the database server host IP address
'User ID=MyUserName;' + // Specifies a valid user name
'Password=MyPassword;' + // Specifies the corresponding password for the user name
'Database=MyDatabase;' + // Specifies the target database name
'Persist Security Info=true;Charset=utf8'; // Specifies additional attributes
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=MySql;" // Specifies the database engine type
L"Server=127.0.0.1;" // Specifies the database server host IP address
L"User ID=MyUserName;" // Specifies a valid user name
L"Password=MyPassword;" // Specifies the corresponding password for the user name
L"Database=MyDatabase;" // Specifies the target database name
L"Persist Security Info=true;Charset=utf8"; // Specifies additional attributes
Tip
Refer to the following topic for step-by-step instructions on using MySQL databases with ExpressReports and ExpressDashboards: How to Use MySQL.
Firebird is an open-source SQL relational database management system.
| Versions | Database Provider Assembly | NuGet Package |
|---|---|---|
| Firebird 1.5, 2.5.7, 3.0.13, 4.0.6, 5.0.3 | FirebirdSql.Data.FirebirdClient.dll 10.* | FirebirdSql.Data.FirebirdClient |
dxBackendDatabaseSQLConnection1.ConnectionString :=
'XpoProvider=Firebird;' + // Specifies the database engine type
'DataSource=localhost;' + // Specifies the database host address (example: IP 127.0.0.1)
'User=SYSDBA;' + // Specifies a valid user name
'Password=password;' + // Specifies the corresponding password for the user name
'Database=C:\Program Files\Firebird\Firebird_5_0\examples\empbuild\EMPLOYEE.FDB;' +
'ServerType=0;Charset=NONE'; // Specifies additional attributes
dxBackendDatabaseSQLConnection1->ConnectionString =
L"XpoProvider=Firebird;" // Specifies the database engine type
L"Datasource=localhost;" // Specifies the database host address (example: IP 127.0.0.1)
L"User=SYSDBA;" // Specifies a valid user name
L"Password=password;" // Specifies the corresponding password for the user name
L"Database=C:\\Program Files\\Firebird\\Firebird_5_0\\examples\\empbuild\\EMPLOYEE.FDB;"
L"ServerType=0;Charset=NONE"; // Specifies additional attributes
Tip
Refer to the following topic for step-by-step instructions on using Firebird databases with ExpressReports and ExpressDashboards: How to Use Firebird.
See Also
Backend for VCL Reports/Dashboards