Название: Обновление отображения QSqlQueryModel Отправлено: svjatoslav от Май 23, 2009, 17:36 С помощью QTableView отображаются данные представляемые моделью потомком QSqlQueryModel. Данные в базе данных изменяются с помощью SQL-оператора UPDATE или INSERT одним из клиентов. Как сделать чтобы данные, которые отображаются у другого клиента обновлялись. Данные обновляются только после выполнения QSqlQueryModel.setQuery(). Пробовал в функции, вызывающей SQL-оператор выполнять emit DataChange(index,index). Может надо какой-нибудь другой сигнал генерировать, который принудительно вызывает обновление данных отображаемых вьюером.
Название: Re: Обновление отображения QSqlQueryModel Отправлено: break от Май 24, 2009, 01:21 Что за БД?, в контексте какой транзакции делается чтение и в контексте какой запись? - как настроены параметры транзаций? - видимы ли неподтвержденные данные от одной транзакции в другой транзакцие? Можно это все проверить ин настроить сначала с помощью чужого готовогои инструментария - а потом попробоватьк как надо у себя реализовать.
после этого т.к. в setQuery - набор данных передается по ссылке - то можно попробовать уже потом переооткрывать query (по тймеру или как там надо) - тое есть: Код: QSqlQuery query; но сам не делал так - пока не приходилось - так что нужно проверить, можето оно там зачем нибудь копию QSqlQuery создает хотя врят-ли Название: Re: Обновление отображения QSqlQueryModel Отправлено: svjatoslav от Май 24, 2009, 06:23 База MySQL. На том же клиенте, на котором производилось обновление данных, отображение изменяется вовремя. Другим клиентам новые данные не видны. Если у всех обновлять данные по таймеру, очевидно, все будет работать, когда обновляешь вручную все работает. Спасибо, break'у за совет, завтра попробую и доложу о результатах.
|