Для сохранения данных в QSqlTableModel необходимо выбрать стратегию
setEditStrategy(QSqlTableModel::OnManualSubmit);
обычно это делают в конструкторе.
Затем производят запись методом insertRecord()
QSqlRecord newRecord = record();
newRecord.setValue("surname", surname);
newRecord.setValue("name", name);
if (!insertRecord(rowCount(), newRecord)) {
qWarning() << "Failed to save data:" << lastError().text();
return;
}
и применяют изменения методом submitAll()
if(!submitAll()){
qWarning() << "Failed to submitAll:" << lastError().text();
}
если после этого данные не сохраняются в БД, возможно не правильно настроенны первичные ключи, мне помогло включение AUTOINCREMENT для поля с первичным ключем.
Более подробно
тут.
Комментариев нет:
Отправить комментарий