QSqlTableModel - wie immer alles laden?

Alles rund um die Programmierung mit Qt
Antworten
cbockem
Beiträge: 8
Registriert: 22. Juni 2010 09:42

QSqlTableModel - wie immer alles laden?

Beitrag 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!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QSqlTableModel - wie immer alles laden?

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
cbockem
Beiträge: 8
Registriert: 22. Juni 2010 09:42

Re: QSqlTableModel - wie immer alles laden?

Beitrag 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!
Antworten