ABS File Documentation


Summary

An ABS (Absolute Database) file is a single-file embedded database created by desktop applications built with ComponentAce’s Absolute Database engine, a drop-in replacement for the old Borland Database Engine (BDE) in Delphi and C++Builder. The whole database — tables, indexes and BLOBs — lives in one proprietary binary .abs file, and it may be password-encrypted. Its MIME type is application/octet-stream. Open or export it with the bundled DBManager utility, or through the program that created it; a text editor shows only gibberish.

Technical details

FeatureValue
Full nameAbsolute Database File
File extension.abs
MIME typeapplication/octet-stream
Format typeSingle-file embedded relational database (binary)
DeveloperComponentAce
EngineAbsolute Database (BDE replacement for Delphi / C++Builder)
IntroducedEarly 2000s
Open standardNo — proprietary, undocumented layout
Server requiredNo — in-process, single file, no separate DB server
StoresTables, indexes and BLOB data in one file
EncryptionOptional strong password-based encryption of the whole file
Managed withDBManager utility (ships with Absolute Database)
Magic numberNone publicly documented
Also seen asGCC/linker “absolute” ELF image (a different, unrelated .abs)
Related extensions.dbf, .gdb, .fdb, .db, .sqlite, .mdb
Specificationcomponentace.com (no public byte-level spec)

What is an ABS file?

An .abs file, in its database meaning, is an Absolute Database File: a single-file embedded relational database produced by an application built with ComponentAce’s Absolute Database engine. Absolute Database is a database component for Delphi and C++Builder, marketed since the early 2000s as a drop-in replacement for Borland’s ageing Database Engine (BDE). An application that uses it keeps its entire database — every table, index and BLOB — inside one .abs file, with no separate database server to install and no configuration to deploy.

That single-file, in-process design is the format’s whole reason to exist. The engine runs inside the host application, reads and writes the one file directly, and can even compile the database into the program’s executable. You typically meet an .abs when you maintain, migrate or recover data from a Delphi or C++Builder desktop program that was written against Absolute Database. It is a developer and legacy concern, not a format end users create by hand.

Which ABS is it? Database versus “absolute” ELF image

The .abs extension is overloaded, and it is worth settling which one you have before choosing a tool. This page describes the ComponentAce Absolute Database. The extension is also used, in Unix and embedded toolchains, for an absolute file: a fully linked ELF/DWARF executable image whose addresses are fixed rather than relocatable. That is a compiler output, unrelated to any database, and it will not open in a database tool. A few other programs (some audio and CD utilities, screensaver tools) have reused .abs for their own private data as well.

Telling them apart comes down to origin. If the file came from a Delphi/C++Builder business or desktop application, it is almost certainly the Absolute Database. If it came out of a linker or an embedded build, it is the absolute ELF image. When in doubt, inspect the header bytes: an ELF absolute file starts with the ELF magic 7F 45 4C 46 (“\x7fELF”), which the Absolute Database file does not.

Inside the file: one container for the whole database

An Absolute Database .abs is a single binary container holding everything a normal client-server database would spread across many files. The public documentation does not publish a byte-level layout, so the honest description is structural rather than offset-by-offset.

ABS single-file database
 ├─ Database header      container metadata; encryption flag/parameters if enabled
 ├─ Tables               relational tables with typed fields — the app's data
 ├─ Indexes              B-tree style indexes for fast lookups and queries
 ├─ BLOB storage         binary large objects (images, documents) stored inline
 └─ (optional) encryption  strong password-based encryption over the file

Because the tables, indexes and BLOBs share one file, there is no .dat/.idx/.blb trio to keep in sync the way BDE’s dBASE and Paradox tables required. That compactness is a selling point of the engine, and it is also why you cannot open an .abs by pointing a generic viewer at part of it: the whole structure is interdependent and read only by the Absolute Database engine.

Encryption and why the file may be unreadable

Absolute Database supports strong password-based encryption of the entire file. When a developer enables it, the tables and BLOBs are stored ciphered, and the correct password — held by the originating application or supplied to the DBManager utility — is required to open the database at all. This is a deliberate feature for shipping a database inside a desktop product without exposing its contents.

The practical consequence: if your .abs is encrypted and you do not have the password, no tool will read it, and there is no supported way around that. Any “online ABS opener” that claims otherwise cannot decrypt a properly encrypted file. If the file is not encrypted, DBManager (or the original program) opens it directly.

Opening the file and extracting data with DBManager

Because the format is proprietary and tied to the engine, there are exactly two realistic ways in: the application that created the file, or the DBManager utility that ComponentAce bundles with Absolute Database (found under the installation’s \Utils\Bin\ folder). DBManager lets you create, browse and query the database and, crucially, export its tables. A plain text editor is useless here — the file is binary and possibly encrypted, so Notepad shows only noise.

Getting data out (all via DBManager):
  ABS  →  CSV     export each table; opens in Excel, imports anywhere
  ABS  →  XLSX    export/import a table into a spreadsheet
  ABS  →  SQLite  export to CSV/SQL, then import with DB Browser for SQLite
  ABS  →  DBF     move a table to the classic dBASE format the engine replaced

There is no one-click, whole-database converter to another engine. Migration is table by table: export each table from DBManager to CSV or SQL, then load those into SQLite, Excel or another database. To read an existing .abs when you do not own the component, ComponentAce offers a trial you can use to open and export the data. Treat these files as legacy and keep a backup before editing, since the engine is niche third-party software.

Frequently asked questions

How do I open an ABS database file?

Open it with the DBManager utility that ships with ComponentAce Absolute Database, or through the Delphi/C++Builder application that created it. The file is a binary (possibly encrypted) database, so a text editor will not work. If the file is password-protected you also need that password.

Why does my ABS file look like gibberish in Notepad?

Because it is a binary database, not text, and it may be encrypted on top of that. Use Absolute Database’s DBManager instead of a text editor. If you actually have a compiler “absolute” ELF image rather than a database, that is binary too and needs a different toolchain entirely.

How do I export data from an ABS database?

Open it in DBManager and export each table to CSV, or run SQL queries against it, then load the CSV into Excel, SQLite or another database. There is no single-step whole-database converter; migration is done per table.

References