September 2023


Cross-platform data access is essential for building Delphi applications that run on various operating systems, including Windows, macOS, iOS, and Android. Database Access Components (DAC) simplify database connectivity and operations in Delphi, making it easier to achieve cross-platform compatibility. Here’s how to perform cross-platform data access using DAC in delphi database components:

Step 1: Choose a Cross-Platform DAC

Select a DAC that supports cross-platform development and is compatible with the target platforms. Two popular cross-platform DACs for Delphi are FireDAC and UniDAC:

FireDAC: Developed by Embarcadero, FireDAC is a versatile and widely-used DAC that supports multiple database management systems (DBMS) and is compatible with Windows, macOS, iOS, and Android.

UniDAC: UniDAC by Devart is another option that provides cross-platform database connectivity for Windows, macOS, Linux, iOS, and Android. It offers support for various DBMS.

Step 2: Install and Set Up the DAC

Install the chosen DAC into your Delphi IDE and configure it for cross-platform development:

  1. Follow the installation instructions provided by the DAC vendor.
  2. Ensure that you have the necessary drivers or libraries installed on each target platform to support the DBMS you intend to use.

Step 3: Create a Database Connection

To achieve cross-platform data access, set up a database connection that can work on all target platforms:

  1. Drag and drop the appropriate database connection component (e.g., TFDConnection in FireDAC or TUniConnection in UniDAC) onto your Delphi form.
  2. Configure the connection properties, such as server address, username, password, and database name, to match the settings of your DBMS.
  3. Ensure that you specify the correct connection protocol and library path, depending on the target platform.

Step 4: Write Cross-Platform SQL Queries

Write SQL queries that are compatible with all target DBMS and avoid using platform-specific SQL features. Some tips:

  1. Use standard SQL syntax and avoid DBMS-specific extensions.
  2. Be cautious with data types, as they may vary between DBMS. Use generic data types when possible.
  3. Test your queries on each target platform to ensure compatibility.

Step 5: Handle Platform-Specific Features

Recognize that there may be platform-specific features or limitations:

  1. Consider platform-specific UI design to ensure a seamless user experience on each platform.
  2. Handle file paths, permissions, and file system differences that can vary across platforms.

Step 6: Test on Each Target Platform

Thoroughly test your application on each target platform to ensure that it performs as expected and that data access works correctly.

Step 7: Use Conditional Compilation

Delphi allows conditional compilation directives like IFDEF and ENDIF to include platform-specific code blocks. Use these directives to isolate platform-specific code segments, if necessary.

Step 8: Handle Deployment

When deploying your application, ensure that you package the necessary database drivers or libraries for each target platform. This ensures that your application can connect to the database correctly on all platforms.


By following these steps, you can successfully achieve cross-platform data access with DAC in Delphi database components, allowing your application to run smoothly and access data on a variety of operating systems.