Название: Вопрос к экспертам по QSqlRelationalTableModel... Отправлено: ivm2008 от Май 16, 2010, 09:58 Вот с такой проблемой я столкнулся (Qt 4.6.2, база - SQLite): есть две таблицы:
stations:
lines:
Для первой таблицы создаю модель от QSqlTableModel и в качестве view использую QComboBox (m_station): Код: m_pStationModel = new QSqlTableModel(this, m_db); Для второй таблицы создаю модель от QSqlRelationalTableModel и в качестве view строю таблицу m_pTable... В конструкторе модели строю связку: Код: QLinesSqlModel::QLinesSqlModel(int id, QObject *parent, QSqlDatabase db) : QSqlRelationalTableModel(parent, db) ну и собственно часть кода, где эта модель используется: Код: m_pLinesModel = new QLinesSqlModel(m_station_id, this, m_db); Все работает замечательно, во второй и третьей колонках view при редактировании виден комбо-бокс, там список имен из первой таблицы, строки вставляются... все ок. Но вот теперь в первую таблицу вставляю новую строку. Чтобы апдейтить view для второй таблицы естественно использую Код: relationModel(1)->select(); Название: Re: Вопрос к экспертам по QSqlRelationalTableModel... Отправлено: crossly от Май 18, 2010, 08:44 сделай select() для основной модели
Название: Re: Вопрос к экспертам по QSqlRelationalTableModel... Отправлено: ivm2008 от Май 18, 2010, 09:39 Спасибо за совет, но просто select(), а так же и reset() не помогают... но все-таки я нашел решение: при добавлении новой записи в первую таблицу надо выполнить следующий апдейт для модели второй таблицы:
Код: relationModel(1)->select(); и именно без select(). Не очень понимаю при чем тут submitAll(), и почему select() вреден, но это работает :) правда только в режиме OnManualSubmit. В режимах OnFieldChange и OnRowChange - та же проблема. Название: Re: Вопрос к экспертам по QSqlRelationalTableModel... Отправлено: nata267 от Декабрь 21, 2010, 10:50 у меня та же проблема(( ???
Название: Re: Вопрос к экспертам по QSqlRelationalTableModel... Отправлено: crossly от Декабрь 21, 2010, 11:17 submitAll(); сам делает select() после внесения всех изменений
|