Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Прогрессбар выполнения запроса


Автор: safon777 20.8.2024, 10:43
Добрый день

Есть задача создания прогрессбара выполнения запроса к БД. В качестве компонентов доступа к БД мы используем UniDAC
Форма должна иметь кнопку "Прервать", по которой в любой момент можно будет прекратить выполнение запроса и прогресс бар который будет отображать процесс получения данных
В приложении есть сложные запросы которые иногда тратят существенное время на построение плана, на это время в режиме NonBlocking UniQuery вместе с приложением зависает и не позволяет выполнять никаких действий. Поэтому запрос мы выполняем в отдельном потоке. Но в потоке UniQuery ведет себя нестабильно, возникают разные ошибки. 

Кто-либо решал подобную задачу ? Возможно не с UniDAC ? Был бы очень благодарен за пример

Автор: Vas 16.9.2024, 15:20
Бесконечный прогрессбар давно уже придуман

Автор: Hiori 26.5.2025, 10:15
Ну, я опять же гробокопатель smile


Цитата(safon777 @  20.8.2024,  10:43 Найти цитируемый пост)
Форма должна иметь кнопку "Прервать", по которой в любой момент можно будет прекратить выполнение запроса и прогресс бар который будет отображать процесс получения данных

Вы утрируете и немного ошибаетесь в принципах smile Поймите правильно, я не пытаюсь подстебнуть, наоборот

Любой запрос к базе данных и обработка ответа немного отличаются от вашего образа мыслей.

И так, запрос. Пусть будет "SELECT * FROM " ... зависит от, но всё же "[dbo].[USERS] ORDER BY [UName]". Да какой бы он ни был, запрос уже отправлен серверу. Дальше вы получаете ответ.
В любом случае то, что нужно разобрать - уже ответ сервера. И разбор результата - ответ сервера на стороне клиента. Если вам нужна оптимизация - решайте на стороне клиента. Если время между отправкой запроса и ответом сильно разнится - одно, но мне кажется, что у вас разница во времени между приёмом ответа и выдачей результата

Добавлено через 51 секунду
Извините, если не в тему, но это стандартная ошибка всех smile И моя в том числе, я так же тупила в первое время

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)