Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Lazarus+FireBird+РЕД ОС Муром / 19 сообщений из 19, страница 1 из 1
19.03.2020, 05:51
    #39938951
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus+FireBird+РЕД ОС Муром
В рамках "импортозамещения" в контору привезли поделие с РЕД ОС МУРОМ. Из репозитория
установил 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
19.03.2020, 08:27
    #39938971
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus+FireBird+РЕД ОС Муром
zeon11,

Не знаю кошерно это будет или нет, но раз известно по какому имени ищется либа, что мешает сделать симлинк ""libgds.so" который показывает на ту либу что есть?
...
Рейтинг: 0 / 0
19.03.2020, 08:52
    #39938974
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus+FireBird+РЕД ОС Муром
Запустил на винде стоящий у меня без дела 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
19.03.2020, 09:01
    #39938975
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus+FireBird+РЕД ОС Муром
Может что-то сведущий сможет объяснить, зачем такая заморочка в коде, для объявления имени либы?

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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


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

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

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

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

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

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

Нет, такой вариант не работает, все заметно сложнее :)
...
Рейтинг: 0 / 0
20.03.2020, 04:58
    #39939356
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus+FireBird+РЕД ОС Муром
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
20.03.2020, 05:07
    #39939357
zeon11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lazarus+FireBird+РЕД ОС Муром
И всё равно, не понятно, почему в РЕД ОС в меню везде указано, что установился FB 2.5.9,
а библиотека на компьютере оказалась 2.5.7?

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

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

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


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

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

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

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

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

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


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