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

 !