NAME¶
DBD::FirebirdEmbedded - embedded Firebird server (and client)
SYNOPSIS¶
use DBI;
$dbh = DBI->connect("dbi:FirebirdEmbedded:db=$dbname", undef, undef);
# See the DBI module documentation for full details
DESCRIPTION¶
DBD::FirebirdEmbedded is a variant of DBD::FirebirdEmbedded, linked with
the Firebird embedded library,
libfbembed. In addition to the ability
to work with remote Firebird servers (which DBD::FirebirdEmbedded has, being
linked with the Firebird client library,
libfbclient),
DBD::FirebirdEmbedded can be used to work with Firebird databases without the
need of a dedicated Firebird server.
The following things should be set up first:
- Username/password
- These should be unset. Both in the
"DBI->connection(...)" call and in the environment
("ISC_USER", "ISC_PASSWORD", "DBI_USER",
"DBI_PASSWORD" variables).
- Firebird lock directory
- The "FIREBIRD_LOCK" environment variable should
be set to some place where the process can write. Note that if you plan
for several processes to access the database file directly, they all
should have "FIREBIRD_LOCK" set to the same directory, or else
database corruption will occur.
- No "host" in the DSN
- Obviously, do not set any host when calling
"DBI->connection(...)", not even "localhost".
- Permissions to read/write the database
- Obviously, the process needs to be able to read/write the
database file.
COMPARISON WITH DBD::FIREBIRD¶
DBD::FirebirdEmbedded provides exactly the same functionality as the Firebird
server of the same version as the
libfbembed library. It still can work
with remote datases, in which case the use is exactly the same (DSN,
environment) as with the regular DBD::FirebirdEmbedded.
Pros¶
- Standalone work with Firebird databases
- No need to setup/administer a Firebird server. All the
server functionality is available via the libfbembed library.
Shared access to databases is still possible (but read "Firebird lock
directory" above).
- No network latency
- Working directly with the database file elliminates
possible network delays (even if the server is on the local host).
Cons¶
- Memory footprint
- The libfbembed library contains a fully functional
Firebird server and is therefore bigger than the ordinary client library,
libfbclient.
- Setup complexity
- It is very important to make sure that all processes that
access a given database use the same lock directory. See "Firebird
lock directory" above.
SEE ALSO¶
- DBD::FirebirdEmbedded