Название: QSqlTableModel - не сохраняет значение в локальном рекордсете Отправлено: PavelVX от Апрель 09, 2012, 12:41 Есть наследник от QSqlTableModel.
setEditStrategy(QSqlTableModel::OnManualSubmit); Выявилась странная вещь: если править какие-нить поля, то пока не перейдем на другую строку изменения НЕ СОХРАНЯЮТСЯ в ЛОКАЛЬНОЙ копии. То-есть правим строку, не сходя с нее делаем setFilter и все, все сделанные изменения грохнулись. Если сделать setEditStrategy(QSqlTableModel::OnFieldChange); то все тип топ, сохраняет, стоит только сойти с поля. Ну оно и понятно. Но надо в OnManualSubmit сохранять. Как принудительно сохранять изменения в ЛОКАЛЬНОМ рекордсете? Название: Re: QSqlTableModel - не сохраняет значение в локальном рекордсете Отправлено: Странник от Апрель 09, 2012, 13:32 то есть вы хотите сохранить изменения в модели, не отправляя их на сервер? дело в том, что setFilter влечет за собой запрос данных с сервера, и естественно, ваши незасабмиченные изменения грохаются. либо используйте submitAll() для сохранения изменений перед вызовом setFilter(), либо реализуйте собственную модель. но есть у меня ощущение, что вы усложняете и хотите чего-то не того.
Название: Re: QSqlTableModel - не сохраняет значение в локальном рекордсете Отправлено: PavelVX от Апрель 10, 2012, 08:14 Странник, вы не совсем правы, setFilter не перезапрашивает данные с сервака. И даже могу это доказать!
Я пытаюсь создать свою модель, подробности http://www.prog.org.ru/topic_21094_0.html Все работет как надо, быстро. Но как только в фильтре одна позиция, из-за фишки в модели, происходит косяк в визуализации. Сейчас буду потрошить исходники, как-то надо сохранять локальние изменения без отсыла на сервак. |