Einzelnen Beitrag anzeigen

iGoA

Registriert seit: 9. Jul 2007
69 Beiträge
 
#1

Keine Fehlermeldung bei asynchronem Aufruf

  Alt 11. Okt 2010, 14:02
Datenbank: Oracle • Version: 9i • Zugriff über: ADO
Moin!

Mich plagt ein Phänomen. Wenn ich ein TADOQuery asynchron öffne, werden sämtliche Fehlermeldungen verschluckt und ich erhalte niemals Feedback, ob die Abfrage noch läuft oder gescheitert ist.
Hier mein Code:
Code:
 
    ...
    query.ExecuteOptions := [eoAsyncExecute,eoAsyncFetch,eoAsyncFetchNonBlocking];

    query.tag := 0; // sollte onFetchComplete auf 1 gesetzt werden
    query.Open;
    while (query.Tag = 0) do begin
        sleep(30);
        self.step; // hier gibt´s eine "Ich tue was"-Animation
    end;
    ...
In der While-Schleife wird eine Animation abgespielt, um dem user zu zeigen, dass das Programm gerade beschäftigt ist (darin auch ein application.processmessages). Wird das Ereignis onFetchComplete ausgelöst, wird tag auf 1 gesetzt und die Schleife bricht ab. Das funktioniert alles top, solange die Abfrage keine Fehler erzeugt. Die Schleife läuft aber unendlich weiter, wenn ein Fehler auftritt, das Programm auf keine Weise davon etwas mitbekommt und somit tag nie auf 1 gesetzt wird.

Ideen?

EDIT: Arbeite übrigens mit Delphi 2009

Geändert von iGoA (11. Okt 2010 um 14:42 Uhr)
  Mit Zitat antworten Zitat