ODBC-драйвер для Firebird

ODBC (Open Database Connectivity) — старый, но живой универсальный стандарт доступа к базам данных. Если к базе Firebird нужно подключить что-то «чужое» — Excel, Power BI или другую BI-систему, скрипт на Python через pyodbc, отчётный инструмент, — почти наверняка понадобится именно ODBC-драйвер. Специализированные инструменты (isql, DBeaver, IBExpert) идут своими путями, а вот всё остальное ПО обычно умеет говорить с базами только через ODBC.

Откуда скачать

Драйвер называется Firebird ODBC/JDBC Driver и официально распространяется через сайт firebirdsql.org — раздел ODBC/JDBC driver. Там же лежат актуальные версии и архив старых.

Драйвер поддерживает серверы Firebird 2.5–5.x. Скачивать его с левых сайтов-каталогов не стоит: версия оттуда может быть древней, а со старым драйвером новые серверы работают плохо (об этом ниже).

Установка

Windows

На Windows драйвер ставится отдельным инсталлятором — в поставку сервера он не входит. Инсталляторы есть двух разрядностей, и тут главное правило всей темы:

Разрядность драйвера должна совпадать с разрядностью приложения, а не сервера.

Если у вас 64-битный сервер Firebird, но Excel 32-битный — нужен 32-битный драйвер. Несовпадение разрядности — источник ошибок №1 при подключении через ODBC. При необходимости обе версии драйвера ставятся рядом и не мешают друг другу.

Linux

На Linux драйвер работает через unixODBC: ставится библиотека драйвера и регистрируется в конфигурации менеджера драйверов — файл odbcinst.ini. Дальше приложения используют DSN так же, как на Windows.

Строка подключения и DSN

Подключиться можно двумя способами: прямой строкой подключения (DSN-less) или через настроенный источник данных DSN.

Пример строки подключения:

DRIVER={Firebird ODBC Driver};DATABASE=localhost/3050:C:\data\base.fdb;UID=SYSDBA;PWD=пароль;CHARSET=UTF8;

DSN настраивается штатной утилитой odbcad32.exe. Внимание, в Windows их две, и пути нелогичные:

Если настроили DSN, а приложение его «не видит» — почти наверняка вы открыли администратор не той разрядности.

Типичные грабли

СимптомПричинаЛечение
Ошибка про несовпадение архитектуры / драйвер не виденРазрядность драйвера не совпадает с разрядностью приложенияПоставить драйвер той же битности, что у приложения (не сервера)
DSN создан, но приложение его не показываетDSN настроен в odbcad32.exe другой разрядности64-бит: System32\odbcad32.exe, 32-бит: SysWOW64\odbcad32.exe
Знаки вопроса или кракозябры вместо кириллицыНе указана кодировка подключенияДобавить CHARSET=UTF8; в строку подключения или в настройки DSN
Странные ошибки при подключении к свежему серверуСтарая версия драйвера с новыми серверами FirebirdСкачать актуальный драйвер с firebirdsql.org

Чем ещё подключаться

ODBC нужен не всегда. Для разработки и администрирования удобнее специализированные инструменты:

Что почитать дальше

Обсуждение