QSqlRelationalTableModel und insertrow, removerow
Verfasst: 13. Oktober 2017 19:31
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
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