Соединение Firebird ODBC (64-битное) завершается неудачно с «имя пользователя и пароль не определены» - PullRequest
0 голосов
/ 19 сентября 2018

Я установил 32-битный Firebird 3.0.3 Classic Server на недавно установленную Windows Server 2016 (32-битную, потому что я должен использовать устаревшую dll UDF, которая доступна только в 32-битной версии).За исключением 64-битного соединения ODBC, все соединения работают нормально с клиентских компьютеров (32-битное соединение ODBC, FlameRobin).Но когда я пытаюсь получить доступ к базе данных через 64-битный ODBC DSN, я получаю сообщение об ошибке «Ваше имя пользователя и пароль не определены».

Мой клиентский компьютер в этом случае - Windows Server 2012 R2.Я сделал следующие шаги:

  1. установил 32-битные клиентские библиотеки Firebird (версия 3.0.3)
  2. установил 64-битные клиентские библиотеки Firebird (версия 3.0.3))
  3. установить 32-разрядный драйвер ODBC (версия 2.0.5.156)
  4. установить 64-разрядный драйвер ODBC (версия 2.0.5.156)
  5. открыть 32-разрядныйКонсоль администрирования Windows ODBC и создание теста DSN - подключение OK
    Снимок экрана: https://postimg.cc/WDrJQryH
  6. Откройте 64-разрядную консоль администрирования Windows ODBC и создайте DSN - ошибка подключения!Снимок экрана: https://postimg.cc/5XDC7psz

Я уверен, что не ввел пароль неправильно.Что я мог пропустить?Большое спасибо!

1 Ответ

0 голосов
/ 20 сентября 2018

В целом подобные проблемы (когда у вас два почти идентичных приложения и работает только одно из них) часто диагностируются путем сравнения их поведения и поиска различий, а затем попытки изменить настройки компьютера или приложения, чтобы устранить подозрительные и ненужные различия, если толькообе программы работают.Полезным инструментом для этого может быть, например, SysInternals Process Monitor, который можно настроить для записи файлов треков ввода / вывода (также реестра и других вещей), которые могут дать ценную информацию о реализации программы и ее сбое.В этом конкретном случае, когда вы нажимаете кнопки «Проверить соединение» в окнах ODBC32 и ODBC64, отслеживание доступа к файлам и реестру, вероятно, подскажет, где что-то не так для 64-битного приложения, в отличие от 32-битного.

Если на некоторое время пропустить систематическую диагностику и попробовать просто угадать, то Марк предполагает, что 64-разрядному приложению не удается найти правильный fbclient.dll (где собственное может означать много вещей: версия FB, 32/64-битность, текстоваяфайлы конфигурации, а что нет).

Видя, что в ваших окнах настройки ODBC есть явные поля «Клиент» с кнопкой «Обзор», я предполагаю, что ODBC пытается автоматически определить местонахождение клиентской библиотеки и по какой-то причине находит некоторыенеудачникЗатем я предлагаю вам попытаться установить в этом поле «Клиент» именно тот файл fbclient.dll, который использует сам движок Firebird, и если вы не изменили параметры установки по умолчанию, это будет что-то вроде «c: \ Program Files \».Firebird \ Firebird_3_0 \ bin \ fbclient.dll "

...