powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5 embedded и закрытие программы приводит к выбросу исключения
4 сообщений из 4, страница 1 из 1
Firebird 2.5 embedded и закрытие программы приводит к выбросу исключения
    #39275742
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь если не в этот форум...

Среда разработки Delphi XE8, Firebird embedded 2.5.5.26952

Все прекрасно работает до момента закрытия программы. В главной форме закрываются обращенеи к базе данных, ошибок нет.
Но в уже непонятно в какой момент выбрасывает Access violetion по адресу XXX.
Естественно в отладцике ассемблерного кода там все запонено нулями. Решил во время работы проверить, что за код там располагается
и неожиданно открыл, что там оказывается часть кода из MSVCR80.dll, функция _endthreadex.

Кто-нибудь с такими минами дело имел? Или может я не правильно финализацию из embedded делаю (может какой мануал по этому делу пропустил)?
...
Рейтинг: 0 / 0
Firebird 2.5 embedded и закрытие программы приводит к выбросу исключения
    #39275749
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

Похоже на отсутствие вызова fb_shutdown() в конце работы.
...
Рейтинг: 0 / 0
Firebird 2.5 embedded и закрытие программы приводит к выбросу исключения
    #39275750
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svd,

нужно вызвать fb_shutdown перед выгрузкой библиотеки\закрытием приложения
...
Рейтинг: 0 / 0
Firebird 2.5 embedded и закрытие программы приводит к выбросу исключения
    #39275782
svd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помошь!!!

для начала попытался что либо в сети про эту функцию найти и почитать (так как в компонентах прямого вызова пока не обнаружил).
Но тут нагуглил описание из релизноута ( http://www.firebirdsql.org/rlsnotesh/rlsnotes25.html )


Important for Application Developers

fb_shutdown() does not perform a shutdown of a remote server to which your application might be concurrently attached.
In fact, all of the Firebird client libraries—including the one in embedded— call it automatically at exit() , as
long as the client is attached to at least one database or service.

Hence, it should never be called by a client in the context of a remote attachment .

Как я понимаю на франзуском, вызов функции производится автоматически из exit(). То бишь как бы все уже должно было
быть реализовано. А последняя строчка о вызове к удаленному серверу натолкнула на мысль, что в этом то как раз и дело:
перед ошибкой буквально изменил строку соединения на содинение с удаленным сервером,
ибо неудобно каждый раз стороннего клиента отключать.

За одно исследования привели меня на firebirdsql.org, где я обнаружил последнюю версию 2.5.6.27020, у которой такого
эффекта уже нет. Протестировал и с embedded, и с удаленным подключением - полет нормальный.

Спасибо большое за помощь.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5 embedded и закрытие программы приводит к выбросу исключения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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