Как правильно добавить новые строки в таблицу. Первичный ключ создан, поле автоинкрементное. Таблица отображается нормально, После добавления и редактирования новых строк на submitAll() ругается: No Fields to update. Вот код:
model = new QSqlTableModel(this);
model->setTable("table");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
table_view->setModel(model);
mapper = new QDataWidgetMapper;
mapper->setModel(model);
mapper->addMapping(lineEdit1, 1);
mapper->addMapping(lineEdit2, 2);
connect(table_view->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
mapper, SLOT(setCurrentModelIndex(QModelIndex)));
table_view->setCurrentIndex(model->index(0, 0));
connect(submit_action, SIGNAL(triggered()), this, SLOT(submit()));
connect(add_action, SIGNAL(triggered()), this, SLOT(add()));
}
void main_window::submit()
{
model->database().transaction();
if (model->submitAll()) {
model->database().commit();
} else {
model->database().rollback();
QMessageBox::warning(this, trUtf8("Моя программа"),
trUtf8("Зе датабазе кирдык: %1")
.arg(model->lastError().text()));
}
}
void main_window::add()
{
model->insertRow(model->rowCount());
}
Юзаю Qt 4.5.0, Ubuntu 9.04, MySQL 5.0