На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> Прерывание долгого запроса
    Интересует вопрос: как прерывать правильно долгоработающие запросы?

    Ситуация следующая. В программе сделал интерфейс для генерации отчетности. Но реализовал пока "криво" - запрос делается в GUI-потоке, и пока запрос не отработает, окошко висит. Закрыть его не получится, ибо "Not Responding", что есть не по феншую. Хочу запрос вывести в отдельный поток, а в GUI потоке ловить нажатие кнопочки "Отмена". Все бы ничего, но как это с БД порешать?

    Нагуглил ответ, но все равно непонятка - запрос то висит в потоке. По приведенному совету, еще один поток открывать, или как?
      По-идее, можно обойтись без потока, если использовать вот это API: http://www.postgresql.org/docs/9.3/interac...ibpq-async.html
      Для отмены текущего запроса, кстати, есть вот такое API: http://www.postgresql.org/docs/9.3/interac...bpq-cancel.html
        Пасип, заманчиво) Но я пользуюсь встроенными средствами Qt5 для работы с БД. Там все API построено на синхронных вызовах. До хендла соединения в принципе добраться можно, но если перевести в режим асинхронной работы - думаю Qt просто свалится.
          Ну, в первом посте про это ничего не было сказано :)
          В твоём случае, думаю, да -- открывать новое соединение в новом потоке, либо написать свой драйвер-прослоку между Qt и libpq :-?
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0168 ]   [ 14 queries used ]   [ Generated: 19.05.24, 10:17 GMT ]