QSqlRelationalTableModel und insertrow, removerow

Alles rund um die Programmierung mit Qt
Antworten
Chri
Beiträge: 100
Registriert: 23. Juni 2017 12:32

QSqlRelationalTableModel und insertrow, removerow

Beitrag von Chri »

Hi
Ich lese aus einer Qsqlite-Datenbank in ein QSqlRelationalTableModel und zeige es in einer QTableview an.

Wenn ich per Code eine Zeile lösche (... qmod->removeRows(z, 1); qmod->submitAll(); ....)
werden die Daten der Zeile zwar gelöscht, die Zeile bleibt jedoch in der QTableview und der Zeilen-Header zeigt ein !
In die Datenbank wird zwar richtig zurück geschrieben, im Model bleibt jedoch anscheinend irgendwie diese Zeile.
Wenn ich dann das Model neu aus der Datenbank einlese ist alles so wie es sein sollte.
Doch eigentlich will ich zu diesem Zeitpunkt noch gar nicht in die Datenbank retour schreiben.
Gibt es irgend ein "clean" fürs model?

Ähnliches passiert beim Einfügen von Zeilen:
Hier wird zwar eine Neue Zeile eingefügt, im Zeilen-Header steht ein * und der weitere Code wird nicht ausgeführt.
Deswegen habe ich nach dem
qmod->insertRows(z, 1); ein qmod->submitAll();
drangehängt und damit funktioniert es soweit (weiß zwar nicht, wieso...) und landet in der Datenbank.
Aber wie zuvor: Ich will ja noch nicht in die Datenbank zurückschreiben.

LG
Chri
Die Sprache des Technikers ist die Skizze
Chri
Beiträge: 100
Registriert: 23. Juni 2017 12:32

Re: QSqlRelationalTableModel und insertrow, removerow

Beitrag von Chri »

Glaube, ich habs gelöst:
Es fehlte: qmod->setEditStrategy(QSqlRelationalTableModel::OnManualSubmit);

LG
Chri
Die Sprache des Technikers ist die Skizze
Antworten