Fortschrittsanzeige bei SQL-Abfrage

Verschiedenes zu Qt
Antworten
chrislo1976
Beiträge: 105
Registriert: 24. Februar 2008 09:45

Fortschrittsanzeige bei SQL-Abfrage

Beitrag von chrislo1976 »

Hallo!

Ein Programm an dem wir arbeiten führt zum Teil recht umfangreiche Datenbankabfragen durch, teilweise ist die Verbindung sogar übers Internet. Deshalb kann so eine Abfrage schon mal dauern.
Momentan ist es so dass während dieser Zeit die Sanduhr angezeigt wird und solange nix geht bis die Abfrage abgeschlossen ist.

Dies ist nicht sonderlich schön, manchmal weiß man gar nicht ob das Programm abgestürzt ist oder nicht...

Gibt es mit Qt-Mitteln (sprich mit den Qt-SQL-Klassen) eine Möglichkeit während die Abfrage läuft, zyklisch einen Status dazu zu bekommen?! Ich würde gern eine Art Fortschrittsdialog anzeigen lassen, sodaß ich sehe:
1.) es geht noch was,
2.) wieviele Datensätze wurden schon geladen und
3.) wieviele Datensätze kommen noch.

Ein zusätztliches Feature wäre dann noch die Abfrage abzubrechen.

Weiß jemand ob sowas realisierbar ist? Unter Win32-SDK bzw. MFC kenn ich Callbacks (z.B. bei Dateioperationen) mit denen man sowas bewerkstelligen kann.

Wäre für jede Art Info, Tipps und Hilfe dankbar!

Gruß,
Christian
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die SQL-Opertationen in einen eigenen Thread auslagern ist da wohl das Mittel der Wahl.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
chrislo1976
Beiträge: 105
Registriert: 24. Februar 2008 09:45

Beitrag von chrislo1976 »

Hallo!

Gut, damit würde die Applikation selbst nicht blockiert werden während die Abfrage läuft, aber Hauptziel wäre es für mich den aktuellen Status der Abfrage mitzubekommen...

Gruß,
Christian
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn Du eine DB-Abfrage weggeschickt hast wirst Du wohl mit den normalen Qt-Treiber keine Chance haben irgendwelche Statusinformationen über den Ablauf zu bekommen. Das müsste der DB-Treiber erstmal unterstützen und das tun imho nur die wenigsten (wenn überhaupt).
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Hab noch nirgendwo etwas in der Richtung gesehen. In so einem Fall lasse ich einen Timeout-Timer laufen und die ProgressBar bezieht sich dann auf den Timer. Dann weiß man wenigstens wann es spätestens weiter geht :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Antworten