Как правильно добавить новые строки в таблицу. Первичный ключ создан, поле автоинкрементное. Таблица отображается нормально, После добавления и редактирования новых строк на submitAll() ругается: No Fields to update. Вот код: | Код | model = new QSqlTableModel(this); model->setTable("table1"); 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
|