Seite 1 von 1

QSqlTableModel - wie immer alles laden?

Verfasst: 14. Februar 2012 09:30
von cbockem
QSqlTableModel lädt beim Öffnen einer etwas grösseren Tabelle immer nur ein paar Datensätze in den Speicher; der Rest muss mit

Code: Alles auswählen

while(canFetchMore())
    fetchMore();
geholt werden. Das ist je nachdem auch gut für Performance-Optimierungen usw. Bei meiner Anwendung möchte (und kann!) ich hingegen immer gleich alles laden und dann z.B. in einer TableView anzeigen und bearbeiten. Klappt auch - am Anfang!

Wenn man nun aber z.B. einen Datensatz löscht, oder einen hinzufügt oder ändert, dann werden nachher immer automatisch sämtliche Datensätze im Speicher wiederum verworfen und ich muss gleich wieder alles laden! Kommt hinzu dass es garnicht so einfach ist dafür die richtigen Signale zu finden, um das Nachladen weder zu oft noch zu selten zu machen.

Frage: Gibt es vielleicht doch auch irgendwo eine Einstellung, wo man dem Teil sagen kann dass er eben selber immer alles laden soll? Entweder als Flag, oder z.B. eine Angabe, wie viele Datensätze immer zu speichern seien (wo man dann eine hohe Zahl einsetzen kann)? Ich suche das nun schon seit einiger Zeit vergeblich - aber der Kampf mit dem Nachladen ist wirklich eine Plage!

Re: QSqlTableModel - wie immer alles laden?

Verfasst: 14. Februar 2012 17:44
von Christian81
Nein - ein QSqlTableModel ist ein einfaches Model um einfache Dinge machen zu können. Wenn du etwas anders möchtest musst du dir ein eigenes Model bauen.

Re: QSqlTableModel - wie immer alles laden?

Verfasst: 15. Februar 2012 08:35
von cbockem
Ok, das ist auch eine (an sich gute!) Philosophie! Und ich weiss dann auch was ich zu tun habe... ;-)

An sich habe ich auch schon eine Lösung "hingemurkst", die aber leider noch etwas lahm ist; drum war meine Hoffnung dass ich dieses Rad nicht nochmals erfinden müsse! Scheint dann aber so zu sein - sei's drum...

PS: Im Prinzip schätze ich es ja auch wenn Klassen nicht völlig mit Funktionalitäten überladen sind - wo dann der nächste wieder probieren muss, wie man dies und jenes vielleicht auch wieder abwürgen könnte weil er es lieber leicht anders hätte!