Имею QSqlTableModel и QDataWidgetMapper:
C++ (Qt)
model = new QSqlTableModel(this,DB);
model_mrgsa->setTable("tab");
model_mrgsa->select();
model_mrgsa->setEditStrategy(QSqlTableModel::OnManualSubmit);
model_mrgsa->setFilter("id = 1");
ui->tableView->setModel(model);
mapper = new QDataWidgetMapper();
mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
mapper->setModel(model);
mapper->addMapping(ui->lineEdit_1,model->fieldIndex("f1"));
mapper->addMapping(ui->lineEdit_2,model->fieldIndex("f2"));
mapper->toFirst();
Далее по нажатию на соответствующую кнопку у меня должны сохраняться в модели и БД изменения, внесённые в line_Edit'ы:
C++ (Qt)
mapper.submit();
model.submitAll();
Запускаю приложение, вношу изменения в line_Edit'ы, жму кнопку Save - всё работает, mapper.submit() возвращает true. После этого еще меняю какое-либо поле, снова жму Save - изменения не вносятся, mapper.submit() возвращает false.
Как мне найти причину такого поведения? Аналога lastError я для маппера не нашёл.