SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Firebird, HQbird, InterBase » Embedded Firebird
Embedded Firebird [сообщение #225] Sat, 23 July 2022 11:28 Переход к следующему сообщению
MaratIsk в настоящее время не в онлайне  MaratIsk
Сообщений: 7
Зарегистрирован: July 2022
Junior Member
Каков минимальный набор файлов и структура для embedded? FB 4 под Windows

[Обновления: Sat, 23 July 2022 11:41]

Известить модератора

Re: Embedded Firebird [сообщение #226 является ответом на сообщение #225] Mon, 25 July 2022 10:01 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 84
Зарегистрирован: June 2022
Member
plugins/engine13.dll
intl/fbintl.conf
intl/fbintl.dll
icudt63l.dat
fbclient.dll
firebird.conf
icudt63.dll
icuin63.dll
icuuc63.dll
msvcp140.dll
vcruntime140.dll
firebird.msg

+

желательно инструменты

fb_lock_print.exe
fbtracemgr.exe
gbak.exe
gfix.exe
gstat.exe
isql.exe
nbackup.exe
Re: Embedded Firebird [сообщение #230 является ответом на сообщение #226] Tue, 26 July 2022 06:02 Переход к предыдущему сообщениюПереход к следующему сообщению
MaratIsk в настоящее время не в онлайне  MaratIsk
Сообщений: 7
Зарегистрирован: July 2022
Junior Member
Спс
Re: Embedded Firebird [сообщение #425 является ответом на сообщение #226] Thu, 01 September 2022 14:19 Переход к предыдущему сообщениюПереход к следующему сообщению
KeeperWorld в настоящее время не в онлайне  KeeperWorld
Сообщений: 5
Зарегистрирован: September 2022
Junior Member
Добрый день!

Я скопировал все эти файлы в папку проекта. Туда же копирую базу-пример из установочного пакета Firebird 4.0 взятого отсюда (Firebird-4.0.2.2816-0-Win32.zip)
Создаю новое приложение с нуля. Кидаю на главную форму компоненты DB = TIBDataBase и TR = TIBTransaction. Связываю их между собою.
Кидаю кнопку TButton и по ней код:

procedure TForm1.Button1Click(Sender: TObject);
begin
  db.Params.Values['user_name'] := 'SYSDBA';
  db.Params.Values['password'] := 'masterkey'; 
  db.DatabaseName := 'employee.fdb'; 
  if Pos(':', db.DatabaseName) = 0 then
    db.DatabaseName := System.SysUtils.GetCurrentDir + '\' + db.DatabaseName;
  db.Open;
end;
Запускаю программу, при старте выдаёт ошибку:
Error reading DB.ServerType: InterBase library ibtogo.dll not found in the path. Please install InterBase to use this functionality.

Где-то прочитал, что надо fbclient.dll переименовать в ibtogo.dll.
Сделал это, запускаю. Но по нажатию кнопки сообщение:

Error loading plugin Engine13
Module D:\ISE\PROJECTS\Others\Graph\WinPointer\plugins/Engine13 exists but can not be loaded
Не найден указанный модуль.

Но модуль в подпапке /plugins/Engine13.dll - есть!
То же самое под FIBS - работает без проблем. Но мне не нужны FIBS, мне хочется на IBX чтобы работало... Sad
Подскажите, пожалуйста, что не так? Уже 2-ое суток не могу победить проблему... Sad

Заранее спасибо за помощь!!!

PS. Delphi 10.3 Version 26.0.33219.4899 Update 1
Re: Embedded Firebird [сообщение #427 является ответом на сообщение #425] Thu, 01 September 2022 16:21 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 84
Зарегистрирован: June 2022
Member
Потому что IBX сделан под Interbase. Соответственно ищет он клиентскую библиотеку с другим именем.
Переименовать fbclient.dll в ibtogo.dll в принципе можно, то тогда и fbclient.dll тоже должен находится в той же папке. Потому что fbclient это не только клиент, но и диспатчер, который связывает различные компоненты системы.

Но вы можете наткнуться на другие проблемы совместимости
Re: Embedded Firebird [сообщение #430 является ответом на сообщение #427] Thu, 01 September 2022 17:02 Переход к предыдущему сообщениюПереход к следующему сообщению
KeeperWorld в настоящее время не в онлайне  KeeperWorld
Сообщений: 5
Зарегистрирован: September 2022
Junior Member
Цитата:
Переименовать fbclient.dll в ibtogo.dll в принципе можно, то тогда и fbclient.dll тоже должен находится в той же папке.
Ура! Сделать два файла ibtogo.dll и fbclient.dll из одного fbclient.dll - ПОМОГЛО! Спасибо!

Я уже даже нашёл "родные" ibtogo.dll
1. c:\Users\Public\Documents\Embarcadero\InterBase\redist\Inter Base2017\IDE_spoof\ibtogo.dll 1,5 Мб

Не помогло. Выдало: "unavailable database."

2. c:\Users\Public\Documents\Embarcadero\InterBase\redist\Inter Base2017\win32_togo\ibtogo.dll 4,3 Мб

Тоже не помогло. Выдало: "product INTERBASE is not licensed."

Ещё потом обнаружил в firebird.log:

Thu Sep 1 16:47:17 2022
ib_util init failed, UDFs can't be used - looks like firebird misconfigured

Всё же добавил его тоже... Пусть без ошибок работает! Smile

СПАСИБО!!!
Re: Embedded Firebird [сообщение #431 является ответом на сообщение #427] Thu, 01 September 2022 17:25 Переход к предыдущему сообщениюПереход к следующему сообщению
KeeperWorld в настоящее время не в онлайне  KeeperWorld
Сообщений: 5
Зарегистрирован: September 2022
Junior Member
Блииин... А вот IBExpert открывать не хочет эту же базу никак... Sad

Сервер, протокол: Local, default
Версия сервера: Firebird 4.0
Файл базы данных: C:\Firebird4\examples\empbuild\EMPLOYEE.FDB
SYSDBA/masterkey
Файл клиентской библиотеки: C:\Firebird4\fbclient.dll

Выдаёт ту же похожую ошибку:

Attempting to connect to:
C:\Firebird4\examples\empbuild\EMPLOYEE.FDB...
Connection failed!
------------------------------------
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
Error loading plugin Engine13.
Module C:\Firebird4\plugins/Engine13 exists but can not be loaded.
Не найдена указанная процедура. .
------------------------------------------------------------ -------------------------------------------------------
SQLCODE: -901
SQLSTATE: 39000
GDSCODE: 335545004

Attempting to connect to services manager:
service_mgr... Failed!

=========

Я попробовал такой же фокус с дублированием ibtogo.dll из fbclient.dll - не получилось... Подставлял в качестве файла клиентской библиотеки и fbclient.dll и ibtogo.dll - не помогло...

PS. В папке C:\Firebird4 - находится всё тот же установочный пакет Firebird-4.0.2.2816-0-Win32.zip
Re: Embedded Firebird [сообщение #433 является ответом на сообщение #431] Fri, 02 September 2022 00:58 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 53
Зарегистрирован: August 2022
Member
Научись уже различать Interbase и Firebird. И указывать нужную клиентскую библиотеку и дельфийским компонентам доступа и эксперту. Переименовывать или копировать fbclient.dll - нельзя. Ну а заодно про архитектуры процессора и разрядности прочитай.
Re: Embedded Firebird [сообщение #435 является ответом на сообщение #433] Fri, 02 September 2022 01:44 Переход к предыдущему сообщениюПереход к следующему сообщению
KeeperWorld в настоящее время не в онлайне  KeeperWorld
Сообщений: 5
Зарегистрирован: September 2022
Junior Member
Я так полагаю, вы уже научились это различать? По-существу - въехав в проблему - чем-нибудь помочь можете? Smile
Re: Embedded Firebird [сообщение #437 является ответом на сообщение #435] Fri, 02 September 2022 09:39 Переход к предыдущему сообщениюПереход к следующему сообщению
sim_84 в настоящее время не в онлайне  sim_84
Сообщений: 84
Зарегистрирован: June 2022
Member
Цитата:
Я уже даже нашёл "родные" ibtogo.dll
1. c:\Users\Public\Documents\Embarcadero\InterBase\redist\Inter Base2017\IDE_spoof\ibtogo.dll 1,5 Мб
ясен пень. Interbase и Firebird уже давно разбежались, у них теперь сильно разные ODS. Ни тот ни другой не может открывать базы друг друга.

Цитата:
Блииин... А вот IBExpert открывать не хочет эту же базу никак...
Я не рекомендую использовать IBExpert с embedded коннектами. Во первых он сам использует fb_embed.dll от firebird 2.5 для хранения настроек. Во вторых с embedded рабочими базами там частенько происходят глюки, по причине того что ibexpert может использовать несколько клиентских библиотек и они начинают путать какие составные части от какой версии брать.

И самое главное. Ты менял в firebird.conf архитектуру на классическую, ибо по умолчанию там супер стоит, что а это обозначает эксклюзивный доступ к БД только одному процессу. Если соединяешься с нормальным сервером через TCP/IP всё впорядке.

Правильное решение.
1. Для разработки через IBE используй всегда полноценный сервер (или хотя бы запущенный как приложение) с подключением через TCP/IP.
2. Используй специализированные компоненты для Firebird (FibPlus, FireDac, UniDAC). Можно конечно и IBX из Delphi, но тогда его придётся допиливать ручками. Вот для Lazarus есть IBX, который поддерживает все фичи Firebird.

Re: Embedded Firebird [сообщение #438 является ответом на сообщение #435] Fri, 02 September 2022 14:18 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 53
Зарегистрирован: August 2022
Member
KeeperWorld писал(а) Fri, 02 September 2022 00:44
По-существу - въехав в проблему - чем-нибудь помочь можете? Smile
Два совета:
1) Даже не пытайся использовать для доступа к Firebird компоненты, предназначенные для Interbase.
2) Разрядность всех загружаемых динамических библиотек должна соответствовать разрядности приложения.
Re: Embedded Firebird [сообщение #445 является ответом на сообщение #437] Fri, 02 September 2022 23:22 Переход к предыдущему сообщениюПереход к следующему сообщению
KeeperWorld в настоящее время не в онлайне  KeeperWorld
Сообщений: 5
Зарегистрирован: September 2022
Junior Member
В общем, долго мучился... Smile
В итоге, снёс все сервера какие были в системе. Удалил все-все файлы (по поиску) fbclient, gds32 и т.д.
Потом скачал все нужные сервера в нужной разрядности.
Установил их вручную как сервисы. Прописал всем свои порты. Указал модель - Classic для FB40. Запустил.
В итоге, заработало всё. IBExpert, правда сначала заругался на chacha.dll, что не может найти нужный модуль, но мне шифрация не нужна - отключил его.
Работает теперь и embedded и обычная по сети. Работает также и в IBX и в FIBS. Стало всё мегаудобно!

Sim_84, SD, спасибо огромное за помощь!!!

Re: Embedded Firebird [сообщение #447 является ответом на сообщение #445] Sat, 03 September 2022 00:38 Переход к предыдущему сообщениюПереход к следующему сообщению
SD в настоящее время не в онлайне  SD
Сообщений: 53
Зарегистрирован: August 2022
Member
3) Разрядность сервера и клиента никак не связаны.
Re: Embedded Firebird [сообщение #464 является ответом на сообщение #225] Mon, 05 September 2022 15:56 Переход к предыдущему сообщению
МорскойДесант в настоящее время не в онлайне  МорскойДесант
Сообщений: 41
Зарегистрирован: September 2022
Member
MaratIsk писал(а) Sat, 23 July 2022 11:28
Каков минимальный набор файлов и структура для embedded? FB 4 под Windows
А для fb 30 - вот тут: https://www.ibphoenix.com/files/Embedded_fb3.pdf

[Обновления: Mon, 05 September 2022 23:19]

Известить модератора

Предыдущая тема: Посоветуйте/покритикуйте как реализовать.
Следующая тема: Non-unicode Delphi, fb 3.0 и fib+
Переход к форуму:
  


Текущее время: Sun Dec 04 00:32:33 MSK 2022

Общее время, затраченное на создание страницы: 0.01297 секунд