Что за БД?, в контексте какой транзакции делается чтение и в контексте какой запись? - как настроены параметры транзаций? - видимы ли неподтвержденные данные от одной транзакции в другой транзакцие? Можно это все проверить ин настроить сначала с помощью чужого готовогои инструментария - а потом попробоватьк как надо у себя реализовать.
после этого т.к. в setQuery - набор данных передается по ссылке - то можно попробовать уже потом переооткрывать query (по тймеру или как там надо) - тое есть:
QSqlQuery query;
/// подготовка + настройка query
setQuery( query ); // 1 раз
//код ниже повторяющийся когдан надо обновить данные
query.clear();
query.exec();
но сам не делал так - пока не приходилось - так что нужно проверить, можето оно там зачем нибудь копию QSqlQuery создает хотя врят-ли