Acu4GL implements a direct, transparent interface between COBOL and RDBMSs.
Previously, accessing a relational database from a COBOL program involved writing SQL code and embedding that code in your program. You had to know SQL, and you had to write SQL statements appropriate for the specific database you wanted to access. Because your queries were tailored to suit one database management system, you had to re-code your COBOL application if you wanted to access a different RDBMS, or an indexed file system, or even to migrate a file from one system to another.
As an alternative, some interface products now translate COBOL I/O statements into direct reads and writes on the database files, without going through the driver, or engine, supplied by the database manufacturer. This means that the COBOL programmer must provide for enforcement of database rules that the engine already knows about and is designed to handle. Bypassing the database engine also means that new constraints or changes in the database structure require reprogramming of the COBOL application.
Acu4GL implements a more suitable approach by dynamically generating industry standard SQL from COBOL I/O statements. As the run time system is executing your COBOL application, Acu4GL is running behind the scenes to match up the requirements and rules of both COBOL and the RDBMS to accomplish the task set by your application. This means that Acu4GL uses the full power designed into the database engine. The engine enforces database rules and constraints; any violations are returned to the COBOL program as I/O error conditions.