Не удается подключиться к Firebird 3.0 с помощью ODBC

Я установил Firebird 3.0 (Firebird-3.0.0.32483_2_x64) под Windows 7 (64 бит). Я создал базу данных Firebird с помощью ISQL и хочу скопировать в нее данные из базы данных Microsoft Access.

Я установил драйвер ODBC Firebird (Firebird_ODBC_2.0.4.155_x64) и настроил пользовательский DSN через источники данных (ODBC) в панели управления. Я использую этот клиент - C: \ Program Files \ Firebird \ Firebird_3_0 \ fbclient.dll - и когда я нажимаю «Проверить соединение», я получаю сообщение «Соединение успешно».

Затем я запустил Access 2013. Я предполагаю, что это 64-битный код, поскольку исполняемый файл находится в «Программных файлах», а не в «Программных файлах (x86)». Когда я пытаюсь создать ссылку на источник ODBC (теперь показанный как «Машинный источник данных»), я получаю следующее сообщение:

Ошибка вызова ODBC

[Драйвер ODBC Firebird] Невозможно подключиться к источнику данных: не удалось загрузить библиотеку «C: \ Program Files \ Firebird \ Firebird_3_0 \ fbclient.dll». (# - 904)

Кто-нибудь может помочь с этим, пожалуйста? Все мои онлайн-исследования показывают, что проблемы возникают, когда 64-битные программы используются с 32-битными драйверами, и наоборот, но я думаю, что все, что я делаю, должно быть в 64-битной сфере. Я также читал, что 904 может указывать на «Недоступная база данных», но я могу открыть ISQL и успешно получить доступ к базе данных в это время.

Ответ на предложение Далтона - я создал системный DSN в Панели управления. Если я открою Access и посмотрю на источники данных ODBC, их там нет. Похоже, что это известная проблема на веб-сайте Microsoft.

Пробуя это, я обнаружил, что Access 2013, установленный на моем ПК, является 32-битным исполняемым файлом, хотя Microsoft установила его в «Программных файлах», а не в «Программных файлах (x86)».

Когда я переключаюсь на 32-разрядный источник ODBC, настраиваю его с помощью 32-разрядного администратора ODBC и пытаюсь установить ссылку на него из Access, я получаю сообщение «[ODBC Firebird Driver] Ошибка загрузки подключаемого модуля Engine12. Модуль C: \ Program Files \ Firebird \ Firebird_3_0 \ plugins \ Engine12 существует, но не может быть загружен (# -901) ».

Firebird установил только одну копию Engine12.dll, и я предполагаю, что это 64-битная dll, поэтому я понимаю, почему это не сработает, но что мне делать дальше?


person Mike B    schedule 24.08.2016    source источник
comment
Существует также 64-битный Flamerobin, но я не понимаю, как его можно использовать для устранения неполадок ODBC, поскольку сам Flamerobin ничего не делает с ODBC.   -  person Mark Rotteveel    schedule 24.08.2016


Ответы (1)


Попробуйте создать системный DSN вместо пользовательского DSN. У меня была аналогичная проблема в прошлом, и я решил ее.

person Dalton    schedule 28.08.2016