Accessing Firebird with ODBC
A guide to setting up Firebird and ODBC on a Linux system. This guide was created using Debian Etch, some details may vary for other distributions.
A few names will be used throughout this guide. These are for you to pick.
<sysdbapassword>The administrator password for this install of Firebird.
<database_path>Path to the database, eg.
<database_name>Filename for the database, eg.
<username>Name for a regular database user.
<password>Password for the regular database user.
<driver_name>Name for the ODBC driver.
<DSN_name>Name for the ODBC description of the database.
- Install unixodbc* packages
- Install firebird2-classic-server (set SYSDBA password)
- Install firebird2-dev
- Optional: Install firebird2-utils-classic
Note: It's also possible to use firebird2-super-server. I don't fully understand the difference.
Creating a database
Note: The commands run as root here would be better run as the 'firebird' user.
Note 2: Retrospectively, using this guide for Ubuntu would have probably been better. Aside from one or two package names, it should work on Debian.
# gsec -user sysdba -pass <sysdbapassword> -add <username> -pw <password> $ cd <database_path> # /usr/lib/firebird2/bin/isql (NOT the same as /bin/isql) SQL> create database '<datbase_name>' user '<username>' password '<password>'; SQL> connect test.fdb user <username> password <password>;
Data can then be added with normal SQL commands
Setting up unixODBC
- Download the Firebird ODBC version 2 source for Linux
make -f makefile.linux
- Copy the resulting
Warning: Putting the name and password in the DSN is a bit of a security risk. It is done in this example for convenience.
Use ODBCConfig. Create a new Driver, then a new user DSN.
Source: The unixODBC User Manual.
First, select the driver just created and click 'OK'.
Config file setup
The above can also be created adding an entries to unixODBC's ini files, such as in these minimal examples. (The graphical tool does the same thing, but adds a lot more fields to the files.
[Firebird] Driver = /usr/lib/odbc/libOdbcFb32.so Setup = /usr/lib/odbc/libOdbcFb32.so
/home/user/.odbc.ini<code> for a single user or <code>/etc/odbc.ini for all users)
[<DSN_name>] Driver = <driver_name> Dbname = localhost:<database_path><database_name> User = <username> Password = <password>
Connecting to the database
isql -v <DSN_name>
(It may be required to use
Running the above command as either root or firebird will provide an ODBC SQL console.
OpenOffice.org Base can also connect to ODBC databases.
- The unixODBC site has a bunch of good reference. Click 'Manuals' on the left. (The ODBC Programming Tutorial worked fine for me, but the Easysoft ones do look more professional).
- The MSDN ODBC Programmer's Reference is the authoritative reference for the ODBC API, but there may be some differences between this and unixODBC.