The Firebird Embedded library uses the exact same database engine as the full blown Firebird server (plugins\engine12.dll
in the case of Firebird 3.0). The difference is that a Firebird server accepts remote connections over TCP/IP (and NetBEUI), and - on Windows - connections from other processes using XNET and uses authentication, while Firebird Embedded is an in-process database engine which can only be used from within that process, and relies only on filesystem permissions to decide if you're allowed to open a database.
In other words, it uses the exact same database file format.
As an aside, it is possible to use a Firebird server and Firebird Embedded together on the same database concurrently, if ServerMode
is configured appropriately in the firebird.conf
of both (to SuperClassic
/ThreadedShared
or Classic
/MultiProcess
), and both use the same lock-directory (which would be the default situation).
A Firebird 3.0 server can only open databases with On-Disk Structure (ODS) 12.x, while Firebird 4.0 can - by default - only open databases with ODS 13.0. It is possible to include the engine12.dll of Firebird 3.0 in Firebird 4.0, and configure Firebird 4.0 to open a Firebird 3.0 database with that specific plugin.