At Softacom, we recently completed a large-scale project where we modernized a Delphi XE4 application. The system was used daily for payroll & HR, and over time, it had grown into a huge codebase with outdated dependencies. The goals were clear:
Update the database access layer
Support both MSSQL and PostgreSQL
Add Linux support
Introduce a testing framework to stabilize future changes
Challenges we faced:
Outdated data access technology – the system was incompatible with modern DB systems
No testing framework – made regression risks high
Cross-DB migration issues – MSSQL vs PostgreSQL differences (LEN() vs LENGTH(), IDENTITY vs SERIAL, transaction handling, etc.)
Platform restrictions – Windows-only code needed to run on Linux
Knowledge gaps – some application areas were undocumented and poorly understood, even by the company
What we did:
Replaced the legacy DB layer with UniDAC, making the app work with both MSSQL and PostgreSQL
Handled SQL dialect differences and concurrency issues during the migration
Added support for Linux by rewriting ±769,000 lines of Windows-specific code
Built a unit testing framework from scratch (500+ tests)
Automated about 30% of the process with our internal conversion tools
Outcomes?
Query time reduced by ±35%
Defects cut by ±50% thanks to tests
Full Linux (Ubuntu, CentOS, Debian) support added
Technical debt reduced by ±40%, making the system easier to maintain and extend
If you are interested in a full breakdown of this project, we have published it here: https://www.softacom.com/cases/softacom-transformed-a-delphi-xe4-system-for-mssql-postgresql-and-linux/