Название: передача данных между двумя qsqltablemodel Отправлено: chu от Октябрь 31, 2010, 04:26 как лучше её организовать?
есть 2 таблицы: . отображаю с помощью qtableview устанавливаю сигнал для первой: Код: connect(procModel, SIGNAL(beforeUpdate(int ,QSqlRecord &)), Код: void My_Form::beforeUpdateProc(int, QSqlRecord &record) Название: Re: передача данных между двумя qsqltablemodel Отправлено: kibsoft от Октябрь 31, 2010, 19:46 Цитировать virtual bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ) у модели.Ну или SQL-запрос явно.. (QSqlQuery). Название: Re: передача данных между двумя qsqltablemodel Отправлено: chu от Ноябрь 01, 2010, 17:26 1) дописал функцию, добавил прямой sql-запрос:
Код:
но ячейка в таблице "details" обновляется только после перезапуска диалога. обе таблицы находятся в одном QDialog. пробовал дописать Код: detModel->select 2) с setData то же самое: изменение в procModel не записываются в БД :( Название: Re: передача данных между двумя qsqltablemodel Отправлено: kibsoft от Ноябрь 01, 2010, 20:15 Цитировать но тогда не отображается вторая таблица Не совсем понимаю что вы там делаете, но может у второй модели тоже select вызвать?Название: Re: передача данных между двумя qsqltablemodel Отправлено: chu от Ноябрь 01, 2010, 23:33 Цитировать Не совсем понимаю что вы там делаете, но может у второй модели тоже select вызвать? хочу обновить отображение обеих таблиц. При вызове detModel->select, после обновления procModel, обновляется detModel, но почему-то при следушем измении procModel предыдущее его изменение пропадает. пробовал вызывать select для обоих моделей. не помогло. Думаю что, нужно найти какой-нибудь другой подход, чтоб без select... Есть такой? Название: Re: передача данных между двумя qsqltablemodel Отправлено: kibsoft от Ноябрь 02, 2010, 00:07 Так может поставить setEditStrategy(QSqlTableModel::OnFieldChange) у обоих моделей, чтобы все изменения сразу в базу писались..
Название: Re: передача данных между двумя qsqltablemodel Отправлено: chu от Ноябрь 02, 2010, 00:38 Цитировать Так может поставить setEditStrategy(QSqlTableModel::OnFieldChange) у обоих моделей, чтобы все изменения сразу в базу писались.. стоит у обеих моделейрешил задачу добавлением ещё одного сигнала и слота: Код: connect(procModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), Код: void Det_Form::afterUpdateProc() |