powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus+FireBird+РЕД ОС Муром
19 сообщений из 19, страница 1 из 1
Lazarus+FireBird+РЕД ОС Муром
    #39938951
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В рамках "импортозамещения" в контору привезли поделие с РЕД ОС МУРОМ. Из репозитория
установил Lazarus (установился 1.8.4) и Firebird (установился 2.5.9).
Запустил Lazarus, кинул на форму IBConnection, прописал HostName и DataBaseName.
Попытался установить соединение с сервером - пишет ошибку "Can not load default Firebird clients ("libfbclient.so.2.5.1" or "libgds.so" ...... "

По настройкам побегал, ничего не нашел.
Подскажите, где в Lazarus можно сменить библиотеку доступа?
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39938971
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11,

Не знаю кошерно это будет или нет, но раз известно по какому имени ищется либа, что мешает сделать симлинк ""libgds.so" который показывает на ту либу что есть?
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39938974
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил на винде стоящий у меня без дела Lazarus 2.0.2
Кинул на форму IBConnection.
В редакторе кода Ctrl+Click на объявлении
IBConnection1: TIBConnection;

Код: pascal
1.
2.
3.
4.
5.
6.
procedure TIBConnection.ConnectFB;      
...
  if isc_attach_database(@FStatus[0], Length(ADatabaseName), @ADatabaseName[1],
    @FSQLDatabaseHandle,
         Length(DPB), @DPB[1]) <> 0 then
    CheckError('DoInternalConnect', FStatus);                                         



клик на isc_attach_database привел в ibase60.inc
Там и есть объявления имен либ.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
{$IFDEF Unix}
  {$DEFINE extdecl:=cdecl}
  const
    gdslib = 'libgds.'+sharedsuffix; // Needs completion ?
    libfc  = 'libfbclient.'+sharedsuffix;
    libem  = 'libfbembed.'+sharedsuffix;
    v2  = {$ifndef darwin}'.2'{$else}''{$endif};
    v21 = {$ifndef darwin}'.2.1'{$else}''{$endif};
    v25 = {$ifndef darwin}'.2.5'{$else}''{$endif};
    v251 = {$ifndef darwin}'.2.5.1'{$else}''{$endif};
    fbclib2      = libfc+v2;
    fbembedlib2  = libem+v2;
    fbclib21     = libfc+v21;
    fbembedlib21 = libem+v21;
    fbclib25     = libfc+v25;
    fbembedlib25 = libem+v25;
    fbclib251    = libfc+v251;
    fbembedlib251 = libem+v25;
    // Set default here
    fbclib       = fbclib251;
    fbembedlib   = fbembedlib251;
{$ENDIF}
{$IFDEF Windows}
  {$DEFINE extdecl:=stdcall}
  const
    gdslib = 'gds32.dll';
    fbclib = 'fbclient.dll';
    fbembedlib = 'fbembed.dll';
    libfc  = fbclib;
    libem  = fbembedlib;
{$ENDIF}



Видимо версии выше 2.5.1 не предусмотрены, впрочем, может быть есть обновления.
А так - видимо или исходник подправить, на предмет объявления fbclib
или симлинк сделать.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39938975
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может что-то сведущий сможет объяснить, зачем такая заморочка в коде, для объявления имени либы?

А для решения вопроса, можно наверное даже и ничего не править, а просто в модуле где лежит IBConnection
определить константу с таким же именем, с нужным значением:
Код: pascal
1.
const fbclib = 'libfbclient.so.2.5.9';

она должна перекрыть объявление из ibase60.inc
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39938996
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot fraks#22101904]
// Set default here
fbclib = fbclib251;
fbembedlib = fbembedlib251;
[/src]
Скоро уже 4 выйдет, а у этих до сих пор дефолтный 2.5.1 ))
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39938997
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
Подскажите, где в Lazarus можно сменить библиотеку доступа?

Я сам не пользовался, но там же есть компонент TSQLDBLibraryLoader.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939028
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2 > у этих до сих пор дефолтный 2.5.1 ))

Шож ты хотел, этой версии Мурома лет 5, поди.
Хорошо, если контора не/для "военки" пишет -
тогда могут быть хоть альтернативы, обновления
версий и пр. Иначе - самому подсовывать файлики
и таскать всё что нужно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939128
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам

Шож ты хотел, этой версии Мурома лет 5, поди.
Хорошо, если контора не/для "военки" пишет -
тогда могут быть хоть альтернативы, обновления
версий и пр. Иначе - самому подсовывать файлики
и таскать всё что нужно.

Да нет, я чекнул FPC с транка, то же самое
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939152
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Василий 2 > у этих до сих пор дефолтный 2.5.1 ))

Шож ты хотел, этой версии Мурома лет 5, поди.
Хорошо, если контора не/для "военки" пишет -
тогда могут быть хоть альтернативы, обновления
версий и пр. Иначе - самому подсовывать файлики
и таскать всё что нужно.


Ничего подсовывать нельзя! Мне админы наши говорили, что там чуть-ли не уголовка за "левый" софт. Во что есть в репозитории, тем и пользуйся.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939212
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2> Да нет, я чекнул FPC с транка, то же самое

Тогда я не понял проблему - имя библиотеки по
дефолту неправильное или не меняется или что?

zeon11> Ничего подсовывать нельзя! ... Во что есть в репозитории, тем и пользуйся.


Сочувствую. Это, видимо, из разряда очередных дуростей а-ля МСВС.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939223
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
или что?

Или что. Соседний компонент найти не могут.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939252
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
Во что есть в репозитории, тем и пользуйся.

Помню-помню, на дебе 8-ом знатно потр@хался с либами и их линками от FB при попытке его установки инсталлятором из архива (при штатной установке из репов проблем не было).
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939314
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
Ничего подсовывать нельзя! Мне админы наши говорили, что там чуть-ли не уголовка за "левый" софт. Во что есть в репозитории, тем и пользуйся.
если при таком раскладе можно ещё что-то компилировать (что по сути тоже сторонний софт), то скачай исходники и скомпиль как надо :-)

эт я так понимаю какой-то мохнатый клон мандривки, ох и заморочная же она была в настройке всего и вся
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939354
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
Гаджимурадов Рустам
или что?

Или что. Соседний компонент найти не могут.


Онлайн дока на IBConnection - пустая.
Кто бы знал что для указания имени библиотеки нужен аж целый отдельный компонент.

Заглянул в потроха этого TSQLDBLibraryLoader и непонял что мешало реализовать это внутри TIBConnection.
99% кода TSQLDBLibraryLoader - это самообслуживание, что бы он выглядел компонентом, не более того.

Все IMHO.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939355
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
Может что-то сведущий сможет объяснить, зачем такая заморочка в коде, для объявления имени либы?

Поковырялся, там TIBConnection = class (TSQLConnection) и все эти множественные пляски видимо от того что бы не ломать функциональность которую вынесли в родительский класс.

fraks
А для решения вопроса, можно наверное даже и ничего не править, а просто в модуле где лежит IBConnection
определить константу с таким же именем, с нужным значением:
Код: pascal
1.
const fbclib = 'libfbclient.so.2.5.9';

она должна перекрыть объявление из ibase60.inc

Нет, такой вариант не работает, все заметно сложнее :)
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939356
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
zeon11
Подскажите, где в Lazarus можно сменить библиотеку доступа?

Я сам не пользовался, но там же есть компонент TSQLDBLibraryLoader.


Да, этот вариант работает, только надо "плавно" войти в БД и "плавно" выйти, а то ошибки выскакивают.
Так вот работает нормально:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
procedure TForm1.Button1Click(Sender: TObject);
begin
  SQLDBLibraryLoader1.LibraryName:='/usr/lib64/libfbclient.so.2.5.7';
  SQLDBLibraryLoader1.Enabled:=True;
  IBConnection1.Connected:=True;
  QPatient.Active:=True;
  QRec.Active:=True;

end;

procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
   QRec.Active:=False;
   QPatient.Active:=False;
   IBConnection1.Connected:=False;
   SQLDBLibraryLoader1.Enabled:=False;

end;    

...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939357
zeon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И всё равно, не понятно, почему в РЕД ОС в меню везде указано, что установился FB 2.5.9,
а библиотека на компьютере оказалась 2.5.7?

Это риторический вопрос.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939375
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zeon11
И всё равно, не понятно, почему в РЕД ОС в меню везде указано, что установился FB 2.5.9,
а библиотека на компьютере оказалась 2.5.7?

В целях уменьшения энтропии вселенной, было бы наверное не вредно сообщить об этом разработчику.
Например вот что нашел на сайте РЕД ОС:

РЕД ОСПо вопросам сотрудничества или технической поддержки Вы можете обратиться: отправив сообщение на адрес электронной почты redos.support@red-soft.ru или позвонив на круглосуточный, многоканальный телефон 8 (800) 200 48 02 (Бесплатно на территории РФ)


Техподдержка у них платная, но вряд-ли они будут брать деньги на указание ошибки в инсталляторе.
Может быть и поправят.

Или можно сообщить туда черех разработчиков того поделия где это установлено.
Вполне вероятно что у них техподдержка РЕД ОС оплачена.
...
Рейтинг: 0 / 0
Lazarus+FireBird+РЕД ОС Муром
    #39939377
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для информации.

РЕД СОФТ является разработчиком РЕД БАЗА ДАННЫХ, которая является форком Firebird.

Кроме того, на сколько я в курсе, РЕД СОФТ свои доработки Firebird, видимо не все, передает для включения в Firebird.

Редсофт является членом Firebird Foundation со статусом "Платиновый".

IMHO, шансы что багрепорт дойдет по назначению - весьма высоки.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus+FireBird+РЕД ОС Муром
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]