Russian Qt Forum

Qt => Базы данных => Тема начата: antony от Сентябрь 02, 2007, 19:45



Название: QSqlRelationalModel + QDataWidgetMapper и потеря текущей строки
Отправлено: antony от Сентябрь 02, 2007, 19:45
В процессе работы с реляционной моделью объект типа QDataWidgetMapper может потребовать нескольких вызовов setCurrentIndex. (Например, для того чтобы создать записи в подчиненной таблице сперва надо создать запись в главной таблице.) Однако между вызовом insertRecord() и submit() в главной таблице могут появиться/исчезнуть записи (из-за многопользовательской природы) и первоначальное значение свойства currentIndex может оказаться неверным...

Есть мысль для каждого mapper'а создавать отдельную модель и маскировать все лишние записи по ключу, но что делать если ключ заранее неизвестен, напр. Он устанавливается по autoincrement'у.

Есть еще идея такая – заставить модель при выполнении INSERT emit-ить сигнал с значением query->lastInsertId().

Заранее спасибо.