Progress OpenEdge (formerly Progress 4GL) is an application development platform and database management system widely used for mission-critical business applications.
What You Can Upload
.dbdatabase files.ddata files / data extents.ststructure files- ZIP archive with complete database files
What You Get Out
DataMeans extracts your data into multiple modern formats:
| Output | Description |
|---|---|
csv/{TableName}.csv | One CSV file per table with all row data |
xlsx/{TableName}.xlsx | Excel workbook per table |
xls/{TableName}.xls | Legacy Excel format per table |
json/{TableName}.json | JSON array of records per table |
json/{TableName}.jsonl | Newline-delimited JSON (streaming-friendly) |
postgres.sql | PostgreSQL CREATE TABLE + INSERT statements |
schema/schema-graph.json | Relationship graph for visualization |
schema/er-model.json | ER model for diagram tools |
report.json | Structured extraction report |
report.md | Human-readable extraction summary |
How to Export / Obtain Files
- Stop the Progress database or create a backup
- Locate the
.dband associated data extent files - Include
.ststructure file if available - Create a ZIP with all database files
- Upload the ZIP to DataMeans
Alternative: Use proutil to dump data to .d files:
proutil dbname -C dump tablename tablename.d
Supported Features
- Full schema extraction (tables, indexes, constraints)
- Progress data type conversion
- Sequence mapping
- Relationship preservation
- Multiple data extents
Known Limitations
- Triggers and stored procedures documented but not converted
- Application-level logic requires manual migration
- Very large databases may need chunked exports
Troubleshooting
| Issue | Solution |
|---|---|
| Database locked | Stop database or use backup copy |
| Missing extents | Include all .d1, .d2, etc. files |
| Schema incomplete | Include .st structure file |
Overview
Progress 4GL (now OpenEdge ABL) is a fourth-generation programming language and database platform developed by Progress Software Corporation. It combines a relational database with an English-like programming language for rapid business application development. The database uses a proprietary format optimized for transactional processing and complex business logic.
History and Background
- 1981: Progress Software founded as Data Language Corporation (DLC) by MIT graduates including Joseph Alsop, Clyde Kessel, and Chip Ziering.
- 1984: First commercial version of Progress ships for Unix.
- 1987: Company renamed Progress Software, after its flagship product.
- 1993: Progress Version 7 adds GUI development for Windows and Motif.
- 1995: Progress Version 8 introduces component-based visual development.
- 1998: Progress Version 9 introduces Type I storage areas.
- 2003: OpenEdge 10 released, the first OpenEdge-branded version, introducing Type II storage areas.
- 2005: OpenEdge 10.1 adds object-oriented language extensions.
- 2006: Progress 4GL renamed OpenEdge ABL (Advanced Business Language).
- 2009: OpenEdge 10.2 released; release 10.2B adds Transparent Data Encryption for data at rest.
- 2011: OpenEdge 11 introduces multi-tenant database tables.
- 2014: OpenEdge 11.5 introduces the Pacific Application Server for OpenEdge (PASOE).
- 2017: OpenEdge 11.7, a long-term support release, introduces Change Data Capture.
- 2019: OpenEdge 12 adds a multi-threaded database server.
- 2022: OpenEdge 12.5 adds an ABL API for Apache Kafka messaging.
- 2024: OpenEdge 12.8 adds Dynamic Data Masking and OpenTelemetry-based application observability.
- 2026: OpenEdge 13.0 released, resolving the year-2038 problem by widening on-disk time values from 32 to 64 bits.
File Format Specifications
Database Files:
.db: Database control area, a binary table of contents listing every area and extent.d1,.d2, etc.: Data extents holding table data, indexes, and LOBs.b1,.b2, etc.: Before-image extents used to undo incomplete transactions.a1,.a2, etc.: After-image extents for roll-forward recovery.lg: Text log file recording significant database events.lk: Lock file created at session startup, recording whether the database is open in single-user or multi-user mode.st: Structure description file, a text file defining the database's areas and extents.tn: Transaction log extents (fixed-length only) listing committed two-phase commit transactions
Storage Architecture:
- Block-based storage with configurable block sizes (1KB, 2KB, 4KB, or 8KB)
- B-tree indexes for fast lookups
- Record-level locking for concurrency
- Default block size of 4KB on Windows and Linux, 8KB on UNIX
- Databases divided into storage areas composed of one or more extents
- Up to 32,000 storage areas per database, of which 31,994 can hold application data
- Up to 1,024 extents per area and 1TB per extent; Type II areas can reach about 1PB with large files enabled
- Records per block configurable in powers of two from 1 to 256, defaulting to 64 for 8KB blocks and 32 for other block sizes
File Structure:
- Schema stored within the database's schema area
- Compiled ABL code in
.rfiles (r-code) - Data dictionary for metadata management
- Audit trails and security settings
- Replication and high-availability configurations
- Limits of 32,767 table definitions and 32,767 indexes per database
- Up to 1,000 fields per table through ABL, or 500 through the SQL engine
- Index entries of at most 16 fields each
Data Types and Structures
| Type | Size | Description |
|---|---|---|
| CHARACTER | Variable | Text strings up to 32KB |
| LONGCHAR | Variable | Character data exceeding the 32KB CHARACTER limit |
| INTEGER | 1-4 bytes | 32-bit signed integers |
| INT64 | 1-8 bytes | 64-bit signed integers (added in OpenEdge 10.1B) |
| DECIMAL | Variable | Fixed-point decimals, up to 50 digits with up to 10 decimal places |
| DATE | 1-4 bytes | Stored as an integer count of days |
| DATETIME | Date + 4 bytes | Date and time in milliseconds from midnight |
| DATETIME-TZ | Date + 8 bytes | Date/time with time zone offset from UTC in minutes |
| LOGICAL | 1-2 bytes | Boolean (yes/no) |
| BLOB | Up to 1GB | Binary large objects |
| CLOB | Up to 1GB | Character large objects |
| RAW | Variable | Raw binary data |
| RECID | 4 bytes | Legacy record pointer; can be stored in database fields |
| ROWID | Variable | Portable record pointer; cannot be stored in database fields |
Database Objects:
- Tables: Primary data containers
- Indexes: B-tree structures for performance
- Sequences: Auto-incrementing number generators (32-bit and 64-bit)
- Triggers: ABL schema triggers and Java-based SQL triggers
- Stored Procedures: Java routines executed by the SQL engine
- Views: Virtual tables defined through the SQL engine
Version Differences
| Version | Year | Key Features | File Format |
|---|---|---|---|
| Progress V7 | 1993 | GUI for Windows and Motif | Pre-storage-area format |
| Progress V8 | 1995 | Visual development; AppServer (8.2) | Single- or multi-volume structure |
| Progress V9 | 1998 | Dynamic queries, Java Open Client | Type I storage areas (CONV89 upgrade) |
| OpenEdge 10 | 2003 | Web services, ProDataSets | Type II storage areas (CONV910 upgrade) |
| OpenEdge 10.1 | 2005 | Object-oriented ABL | INT64 data type added in 10.1B |
| OpenEdge 10.2 | 2009 | GUI for .NET (10.2A); Transparent Data Encryption (10.2B) | Optional encrypted on-disk storage (TDE, 10.2B) |
| OpenEdge 11 | 2011 | Multi-tenant tables | Per-tenant partitions; CONV1011 upgrade |
| OpenEdge 11.7 | 2017 | Change Data Capture | No format change within Release 11 |
| OpenEdge 12 | 2019 | Multi-threaded database server | Conversion from Release 11 required |
| OpenEdge 12.8 | 2024 | Dynamic Data Masking, OpenTelemetry support | No conversion within Release 12 |
| OpenEdge 13.0 | 2026 | FIPS 140-3 support; multi-threaded backup by default | 64-bit time values in master blocks and extent headers (year-2038 fix) |
Compatibility Notes:
- Databases can be upgraded but not downgraded; reverting requires a restore from backup
- The database format changes between major releases; PROUTIL conversion utilities (CONV89, CONV910, CONV1011, CONV1112) upgrade databases in place
- Minor releases share a format; a database created under any Release 11.x can be opened by any other 11.x release without conversion
- Some data types require minimum versions; INT64 fields require OpenEdge 10.1B or later
- Single-volume Version 8 databases must be converted to multi-volume structure before upgrading to Version 9
- Migration utilities are provided for major-version upgrades
Technical References
- Progress Documentation
- Wikipedia: Progress Software
- Wikipedia: OpenEdge Advanced Business Language
- OpenEdge Database Essentials: Database File Structure
- OpenEdge Life Cycle
To learn how to use this format with DataMeans, see the User Guide.
What can I convert Progress 4GL / OpenEdge databases to?
DataMeans converts Progress 4GL / OpenEdge databases to clean CSV, Excel, JSON & SQL. Each table is exported as its own file, alongside a structured report of exactly what was extracted.
Do I need Progress 4GL / OpenEdge installed to open my databases?
No. DataMeans reads Progress 4GL / OpenEdge databases directly, so you don't need Progress 4GL / OpenEdge, a license, or any other legacy software to recover your data.
Can I preview my Progress 4GL / OpenEdge data before paying?
Yes. DataMeans shows your extracted tables and rows in the browser first, so you only pay when you're ready to download the full CSV, Excel, JSON & SQL export.
Is my data secure?
Yes. Your files are encrypted in transit and at rest, and are automatically deleted once your conversion is complete. Your data is never sold, shared, or used for anything else.