IBX in Linux

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

IBX in Linux

Сообщение DedFrend » 11.04.2020 20:28:37

Поставил на Лазаря в kubuntu 18.04 пакет IBX cкачанный с visual-t.ru
Установился без проблем.
Перекинул с Windows свой проект, опять-таки Лазаревский, с доступом к БД firebird через IBX
Было несколько ошибок, типа "нет такого свойства" и даже не оказалось класса TIBmemoField. Но это, в сущности, издержки разных версий IBX. Это все было подправлено.
Но сейчас застрял на том, что при попытке открыть любой набор данных (TIBTable, TIBQuery) получаю Acces violation (делаю из IDE). Причем IBDatabase.Connection:=true проходит. Среда Лазаря таблицы видит и поля в них видит. Сменил файлу БД собственника на себя, но оставил группу firebird. Ничего не изменилось.
БД создана из gbk с помощью FlameRobin . Он ее нормально видит. СУБД Firebird 2.5 classic server
DedFrend
постоялец
 
Сообщения: 156
Зарегистрирован: 25.11.2018 12:21:50

Re: IBX in Linux

Сообщение *Rik* » 12.04.2020 15:20:47

Вместе с FireBird поставляется тестовая база employee, скачайте этот пример:
http://visual-t.ru/files/Employee.tar.gz
В IBDatabase исправьте параметры для соединения с вашей базой employee и путь к библиотеке fbclient.***.so

Затем датасет Employee свойство Active установите в True.

Посмотрим что получится.

ps:
А версия Lazarus какая?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: IBX in Linux

Сообщение DedFrend » 12.04.2020 18:31:00

Lazarus 1.8.2+dfsg-3
FPC 3.0.4
i386-linux-gtk2

С employee картина аналогична. Подключение проходит. Инспектор объектов показывает список таблиц базы, но попытка открыть таблицу приводит к сообщению Access violation
DedFrend
постоялец
 
Сообщения: 156
Зарегистрирован: 25.11.2018 12:21:50

Re: IBX in Linux

Сообщение *Rik* » 12.04.2020 19:54:42

DedFrend писал(а):Lazarus 1.8.2+dfsg-3
FPC 3.0.4
i386-linux-gtk2

С employee картина аналогична. Подключение проходит. Инспектор объектов показывает список таблиц базы, но попытка открыть таблицу приводит к сообщению Access violation

Приложение с Employee тестировал на Mint с xfcee, там абсолютно без проблем. Если пробуете запускать на Kubuntu, попробуйте пересобрать сам Lazarus с набором виджетов qt5 или qt, что-то есть подозрение, что проблема в визуальных компонентах возможно.
Ещё попробуйте убрать связь между визуальными компонентами и набором данных, откроется ли IBDataSet Employee?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 426
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: IBX in Linux

Сообщение DedFrend » 12.04.2020 20:02:57

Попробовал запустить в режиме отладки.
Падает с SIGSEGV при попытке открыть транзакцию в TIBtransaction.StartTransaction на вызове

Код: Выделить всё
    if Call(ClientLib.isc_start_multiple(StatusVector, @FHandle,
                               DatabaseCount, PISC_TEB(pteb)), False) > 0 then


Добавлено спустя 25 минут 18 секунд:
Извиняюсь, неправильно понял про Employee и подключался сам, из своего проекта. Сейчас скопировал ваш проект и он без звука открыл вашу таблицу.
Создал у вас TIBTable - тоже без проблем открылся.
Буду искать у себя, что я делаю не так

Добавлено спустя 16 минут 51 секунду:
Всего-то дел оказалось, что не указал в транзакции Defaultdatabase.
Тему можно закрывать
DedFrend
постоялец
 
Сообщения: 156
Зарегистрирован: 25.11.2018 12:21:50


Вернуться в Базы данных

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

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

Рейтинг@Mail.ru