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.