QSqlTableModel removeColumn / insertColumn - nichts passiert

Alles rund um die Programmierung mit Qt
Antworten
TheClerk
Beiträge: 23
Registriert: 21. Oktober 2009 14:16

QSqlTableModel removeColumn / insertColumn - nichts passiert

Beitrag von TheClerk »

Hallo zusammen,

ich habe ein Problem mit der Verwendung von QSqlTableModel. Das Löschen und Einfügen von Zeilen funktioniert wunderbar. Das Löschen und Einfügen von Spalten leider nicht. Mein Code sieht so aus:

Code: Alles auswählen

database.transaction(); // true
tab.setTable("MyTable"); // true
tab.select(); // vermutlich nicht nötig aber schadet (erstsmal) nicht
int colCount = tab.columnCount(); // z.B. 10
bool check = tab.removeColumn(0); // true
colCount = tab.columnCount(); // 9, soweit, so gut
check = tab.submitAll(); // true
colCount = tab.columnCount(); // immer noch 9
database.commit(); // true
colCount = tab.columnCount(); // weiterhin 9
tab.setTable("MyTable");
tab.select();
colCount = tab.columnCount(); // Jetzt wieder 10
[code]

Kann mir jemand erklären, warum die Änderungen, die ich am Modell vornehme mit dem database.commit() nicht auf die eigentliche Datenbank übertragen werden? Vor allem, weil mir überall durch true signalisiert wird, dass meine Aufrufe erfolgreich waren.

Ist das ein Bug oder ein Feature? Oder ist der Fehler doch eher vor dem Bildschirm zu suchen?  :)

Danke, für eure Hilfe.
sigvdr
Beiträge: 100
Registriert: 1. Juli 2008 19:29

Re: QSqlTableModel removeColumn / insertColumn - nichts pass

Beitrag von sigvdr »

Remove count columns from the parent model....
Das steht in der Doku zu QSqlTableModel::removeColumn: from the parent model
Damit ist möglicherweise nicht die Tabelle der SQL Datenbank gemeint.
Eine Reorganisation einer SQL Tabelle hätte ich auch nicht von dem QSqlTableModel erwartet.

Gruß Sig
TheClerk
Beiträge: 23
Registriert: 21. Oktober 2009 14:16

Re: QSqlTableModel removeColumn / insertColumn - nichts pass

Beitrag von TheClerk »

sigvdr hat geschrieben: Eine Reorganisation einer SQL Tabelle hätte ich auch nicht von dem QSqlTableModel erwartet.
Naja removeRow funktioniert ja. Und da es die Funktion removeColumn nun mal gibt, hatte ich schon erwartet, dass sie analog zu removeRow funktioniert. Aber das scheint nicht der Fall zu sein. Trotzdem Danke, für Deine Antwort.
Antworten