Хе хе, странно все это...
Если каждый раз при выполнении пакета запросов, открывать соединение, а по завершении закрывать, то все QSqlQuery - переменные, где хранятся выборки нужные для работы, видимо теряют дескриптор подключения и следовательно вылетает приложение с ошибкой при попытке их перебрать...
Но!
Когда подключение сервер сбросил, достаточно одного запроса, чтобы подключение возобновить... При этом ID подключения на сервере уже другое, но все работает без ошибок.
Я сделал функцейку, SupportConnection, и вызываю ее перед каждым пакетом запросов, в ней содержится :
while (!qq.exec(qs))
{
nIterator++;
if (nIterator==10) break;
}
if (nIterator==10)
{
Disconnected(); // Моя функция, сворачиваю и дизейблю контролы
db.close(); // Закрываю соединение
}
То есть если 10 раз запрос не удался,
Работает и создается иллюзия, что коннект постоянный
!