Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение DV2r4 » 02.03.2019 00:42:15

На попытку подключения со строкой
connect '127.0.0.1/3304:C:\FBDATA\EXAMPLES.FDB' user sysdba password 'masterkey';
isql сообщает - "Install incomplete, please read the Compatibility chapter in the release notes for this version"
Но это известная проблема и решение - нужно создать пользователя SYSDBA: https://www.firebirdsql.org/file/docume ... itsec.html
что и было сделано. После чего, через isql, после добавления пользователя, с базой можно было соединяться.

После того как был вычищен реестр, системные папки и память, поставлен из архива Firebird, изменен конфиг - Firebird был запущен как приложение; ещё раз было сделано заново простое приложение для подключения. После попытки подключения этого приложения по прежнему сообщается о невозможности найти библиотеку. Даже позже добавленный для явного указания библиотеки "SQLDBLibraryLoader" не решил проблему.
Над isql был поставлен допэксперимент - бинарник isql был скопирован в произвольную папку и оттуда запущен без ошибки отсутствия библиотеки (так как система может найти эти библиотеки в пути поиска) а вот Лазарь - не хочет видеть их даже если ему явно добавлять место инсталляции в пути поиска библиотек, в свойствах проекта.
DV2r4
незнакомец
 
Сообщения: 6
Зарегистрирован: 23.02.2019 11:01:52

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение zoltanleo » 02.03.2019 04:29:13

Парень, ты явно делаешь что-то не так. О каких путях поиска ты говоришь? В Path пути прописываются только инсталлятором, при распаковке из архива никаких упоминаний о FB там и в помине нет. Все имеющиеся пути к каталогам FB - следствие оставшихся мусорных записей, которые должны быть оттуда удалены.

При запуске из консоли isql ты должен либо ручками сменить текущий каталог до этой утилиты, либо запускать ее с указанием полного абсолютного пути к ней.

По поводу компонентов доступа из штатной поставки Лазаруса я писал - забудь про них, используй другие. Если и эти советы тебе не помогут, то, боюсь, с выбором профессии программиста ты ошибся :)
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 374
Зарегистрирован: 17.10.2013 10:55:01

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение Alexandr » 04.08.2019 18:07:35

Аналогичная проблема на Лазарусе 2.0.2 с FB 3.0.4 (32 Bit). Win10 Pro64.
Для zoltanleo: не веря в успех, все-таки перепробовал все рекомендации данные для DV2r4 выше. И ... НЕ помогло. ))) Вот только не советую брать на себя полномочия делать выводы о профпригодности, а то можно будет подумать что это от досады что советы не помогли.
При попытке законектиться к базе все та же ругань на не найденную/кривую клиентскую библиотеку.
Опробовано и на примитивах из пакета SQLdb и на правильном IBX (http://visual-t.ru/ibexpress.html) - эффект одинаков.
В то же время:
- IBExpert влет регистрирует базу и работает с ней. В регистрационной инфе указана та-самая клиентская библиотека.
- Делфи из РАД-студио 10.2.2 легко открывает ту же-самую базу и FireDAC, и аскетичными dbExpress - компонентами.
Да и старые проекты (делфийские) пооткрывал - проблем нет, так что грешить на кривой FB оснований нет.
Сейчас заказчику нужен релиз на Лазарусе+ФБ.
У кого-нибудь есть версии - где собака порылась?
Спасибо.
Alexandr
незнакомец
 
Сообщения: 1
Зарегистрирован: 04.08.2019 17:33:59

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение pi1 » 04.11.2019 13:02:07

От души понравился совет про смену профессии :) Чек конкретно и грамотно описал проблему в конкретной версии IDE, а ему типа "забудь про них". Не понятно тогда зачем советчик вообще пишет в этой теме. Может вообще забыть про Lazarus и программировать например в ExtJS? А сколько еще идей ... . Можно еще и посоветовать ось поменять. А кто нить по шагам разъяснить способен, как происходит процесс коннекта компоненты IBconnection из lazarus 1.8.4 c базой данных? И тогда по этой логической цепи и можно будет найти проблемный участок и определить, это фишка версии IDE или не стыковка с логикой оси или ошибка при настройке IDE.

И скорее всего проблема в том, что при запуске готового приложения ось (Windows) в данном случае видит лежащую в "родной" папке соответствующую dll, а вот при работе в IDE эту dll нужно положить так чтобы ось ее видела. А это далеко не всегда папка проекта.
Аватара пользователя
pi1
новенький
 
Сообщения: 59
Зарегистрирован: 19.04.2012 18:11:24
Откуда: г.Зеленокумск

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение zoltanleo » 04.11.2019 15:04:47

pi1
Совет по смену профессии был дан не просто так. Нельзя обучиться профессии по форумам или Ютубу. Чтение специальной литературы должно быть обязательным. И должны быть некие личные качества, которые подходят к выбранной профессии. Помнится, в бытность моей работы хирургом, у нас одного проктолога называли "жопным доктором" не из-за его специальности, а потому что он оперировал так, как будто его руки росли из одного места. Здесь примерно такой же случай.

Теперь по делу. Штатные компоненты Лазаря "увидят" firebird, если положить в корень с лазарусом fbclient.dll любой версии сервера (правда, кто-то предупреждал, что для 64-битной версии данная конструкция не взлетит, но 32-битной это наблюдение работает железно - проверял сам). То же самое справедливо для IBX компонентов, которые ставятся из репозитория OPM.

Можно вручную задать значение для переменной окружения FIREBIRD, указав путь к библе там, тоже сработает.

Если что непонятно, можно почитать здесь: https://www.sql.ru/forum/1317837/zadat- ... nt-i-proch

Принцип работы ibconnection весьма прост: задаёте путь к БД (включая имя сервера и порт, если он нестандартный), путь к библиотеке указываете в соседнем компоненте (...LoadLibrary...). Все это связываете между собой + с компонентами-транзакциями + компонентами-запросами - и вперёд.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 374
Зарегистрирован: 17.10.2013 10:55:01

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение DedFrend » 18.04.2020 15:37:22

Обсуждение идет более 5 лет, но внятного ответа: почему и что с этим делать я не нашел.
Моя ситуация: на windows10-x64 установлена firebird 2.5 x32 и lazarus 2.0.6 x86_64_win64. Все с оффсайтов.
После этого сделана попытка установить пакет ibx 2.3 взятый с оффсайта MWAsoftware.
В результате при старте Лазаря получаю издевательское сообщение 'IBX is unable to locate the Firebird library - have you remember to install it?' . На палитре ничего не появляется.
Firebird установлен и, например, FB/IB Studio получает доступ к базам.
На win32 и linux64 эта ibx встала без проблем.
А что ей здесь надо - не понимаю. Поигрался с instreg и instsvc, записал gdb32.dll и fbclient.dll в проект и к Лазарю - никакого эффекта.
Судя по интернету конфликт м.б именно в 64бит Лазаря и 32бит firebird, но никаких официальных заявлений не вижу.
DedFrend
новенький
 
Сообщения: 77
Зарегистрирован: 25.11.2018 12:21:50

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение zoltanleo » 18.04.2020 16:53:30

Не мучайся, положи fbclient.dll/so в корень Лазаря и перезапусти его
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 374
Зарегистрирован: 17.10.2013 10:55:01

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение Seenkao » 18.04.2020 17:05:48

удали(переименуй) *.lpi файл твоего создаваемого проекта, и задай параметры заново, особенно, если проект изначально не твой.
Seenkao
новенький
 
Сообщения: 43
Зарегистрирован: 01.04.2020 03:37:12

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение zoltanleo » 18.04.2020 17:18:59

Seenkao писал(а):удали(переименуй) *.lpi файл твоего создаваемого проекта, и задай параметры заново, особенно, если проект изначально не твой.

Каким образом взаимосвязаны опции проекта и настройки среды?

IBX при своей загрузке пытается найти клиента FB в переменных окружения и тупо проверяет хэндл клиента. Не найдя его там, клиент ищется в корневой папке Лазаря, потом ещё где-то (не помню сейчас подробностей, но в доке ibx это описано).

Автор компонента помешан на мифической безопасности, потому не хочет сделать загрузку как у ФИБов.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 374
Зарегистрирован: 17.10.2013 10:55:01

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение Seenkao » 18.04.2020 17:24:04

я от многих проблем избавлялся таким образом, в чужих проектах.
Seenkao
новенький
 
Сообщения: 43
Зарегистрирован: 01.04.2020 03:37:12

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение DedFrend » 18.04.2020 18:42:42

В корень Лазаря я уже давно положил, но без толку. И вообще, мне думается, что проблема не в том. что не находит, а в том, что не подходит. А что ему надо, сказать... стесняется.
Я прорыл весь реестр в поисках остатков от других установок firebird, но тоже не помогло. В общем, еще немного помучаюсь и откачу Лазарь на 32 бита.
Впрочем, есть еще одна странность: из FB/IB студии я к базе подключаюсь, а из isql не получилось. Впрочем, я с isql работал мало, возможно, глупые ошибки делаю
DedFrend
новенький
 
Сообщения: 77
Зарегистрирован: 25.11.2018 12:21:50

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение zoltanleo » 18.04.2020 19:48:13

DedFrend писал(а):Судя по интернету конфликт м.б именно в 64бит Лазаря и 32бит firebird, но никаких официальных заявлений не вижу.


Не должно быть. Битность Лазаря влияет лишь на битность бинарника. Впрочем, фиг его знает, чего там Tony накрутил с компонентами.

Попробуй скачать и поставить еще один форк ibx от Rik отсюда http://visual-t.ru/ibexpress.html, он сделал их максимально похожими на ФИБы, должны взлететь 146%
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 374
Зарегистрирован: 17.10.2013 10:55:01

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение DedFrend » 18.04.2020 21:49:56

Я, собственно, свои эксперименты начинал именно с *Rik* варианта. Он мне помог разобраться в некоторых проблемах, которые возникли на Линукс. Но я "родом из Дельфи" и у меня куча проектов с использованием именно той ibx, которая входила в пакет Delphi. И счет компонент IBX идет на сотни. При использовании варианта от *Rik* это ведет к большим проблемам.
DedFrend
новенький
 
Сообщения: 77
Зарегистрирован: 25.11.2018 12:21:50

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение zoltanleo » 18.04.2020 22:08:34

Форк от Rik - это ветка ibx от Tony, пока тот не пошел дальше. Не знаю, про какие проблемы ты говоришь, но нынешние ibx в репах Лазаря ещё дальше от дельфевых, чем риковские :D

Вообщем, сложно тебе посоветовать с учётом твоих проблем. Наверняка, причина твоих неудач проста, но для этого нужен доступ к машине
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 374
Зарегистрирован: 17.10.2013 10:55:01

Re: Lazarus 1.8.4 не может найти fbclient.dll (Firebird 3.0)

Сообщение iskander » 18.04.2020 22:21:49

DedFrend, а у fbclient.dll битность какая?
iskander
постоялец
 
Сообщения: 290
Зарегистрирован: 08.01.2012 18:43:34

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru