Название: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Декабрь 29, 2014, 12:33 После подключения к локальной БД программа завершается очень долго - несколько секунд.
qt 5.2.0, msvc 2010 x32, win7 Пробовал такие варианты: * firebird 2.5.2, самосборный (чтобы использовать ICU51, как в qt) * firebird 2.5.3, самосборный * firebird 2.5.3, готовые библиотеки с сайта. ibase драйвер собирался для каждой версии. Даже если не подключатся к БД, а просто загрузить ibase драйвер, то завершается программа заметно медленнее, чем без драйвера. main.cpp Код
pro Цитировать TEMPLATE = app QT += sql widgets SOURCES += main.cpp В чем может быть проблема? Или это нормальное поведение? Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: panAlexey от Декабрь 29, 2014, 15:08 Тоже интересно.
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Март 26, 2015, 10:09 Up.
Кто-нибудь решил проблему? Может с другим драйвером таких проблем нет? Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Март 26, 2015, 12:23 Проверил с raw C API - программа также завершается несколько секунд. Похоже проблема не на стороне Qt, а где-то у firebird, и связанно это именно с ebedded версией. Тот же FlameRobin нормально завершается.
Вот тут похожая проблема http://stackoverflow.com/questions/1512944/embedded-firebird-unload-delay (http://stackoverflow.com/questions/1512944/embedded-firebird-unload-delay), но я никаких событий не использую. Тестовый код: Код
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: Bepec от Март 26, 2015, 12:33 Принудительно базу закрывать пробовали?
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Март 26, 2015, 12:34 Пробовали.
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vlad-mal от Февраль 15, 2016, 03:17 Решение.
Перед выгрзкой клиентской библиотеки (речь именно об embedded) следует вызвать функци. fb_shutdown этой самой библиотеки. С параметрами (0, 1) /например/. Сигнатура функции: int fb_shutdown(unsigned int timeout, const int reason); stdcall, а еще следует указать имя dll. Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Февраль 15, 2016, 06:26 Жалко, уже не проверить - заменил на sqlite (пришлось помудохаться с многопоточностью). При возможности проверю, спасибо.
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: panAlexey от Февраль 15, 2016, 14:08 Мерси!
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: Пытон от Февраль 13, 2017, 08:00 Жалко, уже не проверить - заменил на sqlite (пришлось помудохаться с многопоточностью). При возможности проверю, спасибо. Как вы там живёте на SQLite без decimal? Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Февраль 13, 2017, 08:59 Как вы там живёте на SQLite без decimal? Нормально живем, более того мы еще и без SQLite можем жить, если ты понимаешь о чем я. Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: Пытон от Февраль 13, 2017, 11:20 Как вы там живёте на SQLite без decimal? Нормально живем, более того мы еще и без SQLite можем жить, если ты понимаешь о чем я. Денюжки (числа с фиксированной дробной частью) в sqlite не хранишь? Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Февраль 13, 2017, 11:29 Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: Пытон от Февраль 13, 2017, 11:35 Что - да? Да, не храню? Или - да, храню?
Название: Re: Qt + Firebird embedded, долгое завершение программы. Отправлено: vregess от Февраль 13, 2017, 13:06 |