Как вручную выполнить установку Firebird только для клиента?

Я пытаюсь установить клиент Firebird 3.0.4.33054 на клиент Windows без использования установщика.

Версия на сервере следующая:

C:\Program Files\Firebird\Firebird_3_0>gfix -z
gfix version WI-V3.0.4.33054 Firebird 3.0

Я нашел эту страницу :

На каждом удаленном клиентском компьютере должна быть клиентская библиотека - libfbclient.so на клиентах Posix, fbclient.dll на клиентах Windows - которая соответствует версии выпуска сервера Firebird.

Firebird может устанавливать символические ссылки или копии, названные в честь библиотек 1.0 (со «старыми» именами InterBase), для обеспечения совместимости со сторонними продуктами, которым нужны эти файлы.

Некоторые дополнительные компоненты также необходимы для установки только для клиента.

В моем клиентском приложении используются компоненты библиотеки FibPlus, поэтому я скопировал (с рабочего клиента) эти два файла:

  • fbclient.dll (3.0.4.33054)
  • gds32.dll (6.3.4.33054)

Я пробовал разместить два файла:

  • В папке клиентского приложения
  • В C: \ Windows \ SysWOW64
  • В C: \ Windows \ System32

Когда клиентское приложение пытается подключиться к базе данных, возникает следующее сообщение об исключении:

Не удается загрузить библиотеку gds32.dll

Что мне не хватает? (Может быть, в документации упоминаются "лишние штуки"?)


person Fabrizio    schedule 25.06.2019    source источник


Ответы (1)


Я решил проблему.

Мое приложение 32-битное, и я использовал 64-битную версию gds32.dll. Я поместил 32-битную версию gds32.dll в папку клиентского приложения, и она начала работать.

На некоторых машинах ошибка «Не удается загрузить библиотеку gds32.dll» по-прежнему возникает после помещения правильной версии gds32.dll в папку клиентского приложения. В этих случаях я решил, установив распространяемый пакет Microsoft Visual C ++ 2010:

Примечание. fbclient.dll не требуется для компонентов библиотеки FibPlus.

person Fabrizio    schedule 25.06.2019
comment
В firebird gds32.dll - это просто переименованный fbclient.dll (он предназначен для обеспечения обратной совместимости с инструментами, ожидающими библиотеки InterBase gds32.dll). - person Mark Rotteveel; 25.06.2019
comment
@MarkRotteveel: Почему у них немного разные номера версий? fbclient.dll (3.0.4.33054) и gds32.dll (6.3.4.33054) - person Fabrizio; 25.06.2019
comment
Firebird был разветвлен на основе InterBase 6, и некоторые инструменты выполняли (или проводят) проверку версии, была ли она хотя бы версией 6, поэтому для этих целей он сообщает о себе как версию 6.3.4 (где 3.4 указывает, что это 3.0.4 iirc, сборка количество совпадений). Даже в самом Firebird (и fbclient) некоторые API сообщают о версии 6.x.x для обратной совместимости. - person Mark Rotteveel; 25.06.2019
comment
FibPlus должен иметь возможность выбрать имя DLL клиентской библиотеки. Но будьте осторожны, библиотека кажется заброшенной. По крайней мере, так было несколько месяцев назад. - person Arioch 'The; 25.06.2019
comment
Да, даже в 64-битных системах, если ваше приложение 32-битное, вам нужно загрузить 32-битную dll, также я хотел бы порекомендовать использовать библиотеку ibpp для клиентских приложений Firebird, если вы знакомы с cpp. Я использую его уже много лет, старый, но отличный, быстрый, стабильный, промышленный уровень, а также хорошая обработка событий fb. - person Boki; 26.06.2019