Russian Qt Forum

Qt => Базы данных => Тема начата: mwChief от Апрель 07, 2011, 00:08



Название: [Решено]Обновление данных в таблице
Отправлено: mwChief от Апрель 07, 2011, 00:08
Есть база SQLite на несколько таблиц. Для работы с таблицами пользовался классом QSqlRelationalTableModel. Но возникла необходимость при добавлении/удалении записи в одну таблицу, обновлять другую таблицу чтобы в ней в одном из полей всегда содержалось максимальное значение из первой. Также если значение в первой таблице просто изменится, вторую тоже нужно обновить.

(https://lh5.googleusercontent.com/_bFkLbDSEg-g/TZzUKEO02EI/AAAAAAAABUk/LqLdhYIBVA4/s144/Drawing1.png)

Как я понимаю нужно унаследоваться от QSqlRelationalTableModel и при изменении в первой талице обновлять вторую. Но возникает вопрос как следить именно за полем value в первой таблице чтоб при изменении других полей зря не пытаться обновить вторую (нужно ведь будет перебрать все значения и найти максимальное). Смогу ли я все это сделать переопределив setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole) ?



Название: Re: Обновление данных в таблице
Отправлено: Пантер от Апрель 07, 2011, 07:21
Все решается на уровне БД (http://www.sqlite.org/lang_createtrigger.html)


Название: Re: Обновление данных в таблице
Отправлено: mwChief от Апрель 07, 2011, 11:43
Похоже как раз то что нужно, спасибо