![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
eXeLe |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 24.8.2012 Пользователь №: 3493 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
собссно возник вопрос.
работаю с базой через запросы
параллельно надо иногда просматривать содержимое базы. вызываю окошко через QSqlTableModel - QTableView, где она отображается. но все измнения, вносимые через запросы, отображаются только после перезапуска программы. как исправить? смотрел в сторону QDataWidgetMapper, но как я понял, оно просто дает работать с тем или иным полем таблицы, а у меня идут запросы в стиле "для строки с таким то имненем, увеличить показатель value на x" или банально добавление новых строк. |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
разве модель не должна отслеживать изменения в вверенной ей таблице и обновлять данные. нет, если, конечно, ты сам такую модель не напишешьпо model->select() происходит перерисовка всего представления со следующими пакостями: известная проблема Qt, которую авторы не собираются исправлятьподскажите какие есть настройки у модели и представления, позволяющие избежать данных неприятностей. настроек ни каких, нужно всё самому решатьесть какие-нибудь рекомендации? писать свою модель, мониторить изменения, не посылать reset(), а обновлять только изменившиеся данные.Хлопотно, но если один раз напишешь, то потом можешь этой моделью пользоваться во многих случаях |
|
|
RazrFalcon |
![]()
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
писать свою модель, мониторить изменения, не посылать reset(), а обновлять только изменившиеся данные. Хлопотно, но если один раз напишешь, то потом можешь этой моделью пользоваться во многих случаях Вопрос вдогонку: как именно мониторить изменения базы? К примеру в firebird я отсылаю событие и потом в клиенте его ловлю. Но как это сделать для любой базы, средствами Qt? Если ли у Qt свой механизм отслеживания изменений баз? Как я понимаю QSqlTableModel обновляет сразу всю таблицу, а не частично. И как он вообще понимает что базу пора обновить? Так вот как написать это частичное изменение? По сути пока что у меня проблема как раз в том, как узнать у базы, какие именно строки изменились... |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 22:13 |