Спокойные сигналы и слоты, потоки, app.exec (), и связанные запросы

Вы, возможно, должны были бы разъясниться немного. Что Вы действительно пытаетесь выполнить? Если Вы действительно хотите узнать имена столбцов, которые только содержат нулевые значения, то необходимо будет циклично выполниться через scheama и сделать динамический запрос на основе этого.

я не знаю, какой DBMS Вы используете, таким образом, я помещу некоторый псевдокод здесь.

for each col
begin
  @cmd = 'if not exists (select * from tablename where ' + col + ' is not null begin print ' + col + ' end'
exec(@cmd)
end
7
задан Community 23 May 2017 в 11:45
поделиться

3 ответа

Если вы не вызываете app.exec (), программа достигает конца вашего main () и завершается. (Почему? Больше нет кода для выполнения!)

app.exec () - это бесконечный цикл следующего стиля:

do
{
  get event from system
  handle event
}
while (true);

Если вы используете соединение с очередью, то событие добавляется в вашу очередь событий, и оно будет выполняться в какой-то момент в будущем во время цикла app.exec ().

В вашей программе нет второго потока. События доставляются ОС асинхронно, поэтому кажется, что происходит что-то еще. Есть, но нет в вашей программе.

12
ответ дан 6 December 2019 в 21:16
поделиться

Когда вы говорите, что он входит в бесконечный цикл, вы имеете в виду, что это приводит к сбою программы?

Потому что listen () станет частью основного цикла обработки событий приложения в том виде, в котором вы его настроили, и который выполняется до выхода из программы. Я не уверен, в чем проблема. Не должно возникнуть проблем, если ваш сигнал будет испускаться в основном цикле событий приложения (exec ()) всякий раз, когда он встречается.

Если хотите,

0
ответ дан 6 December 2019 в 21:16
поделиться

app.exec () входит в основной цикл обработки событий и ждет, пока вызывается exit () .

update:
Основной цикл событий и связующий код, сгенерированный qmake, заботятся о передаче сообщения о событии с QTcpServer на ваш ] ConnectionHandler .

Если вы будете использовать соединения с очередями, фактическое соединение со слотом QTcpServers будет отложено до тех пор, пока основной цикл обработки событий не доставит запрос соединения .

]
0
ответ дан 6 December 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: