Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Fehler durch Verbindungsverlust abfangen

  Alt 8. Jul 2009, 16:24
Zitat von erich.wanker:

Wenn ich den Switch abdrehe - und in einem DBGrid den nächsten record anklicke - kommt:

Zitat:
SQL Error: Unable to complete network request to host"@1". Error writing data to the connection. Eine vorhandene verbindung wurde vom Remotehost geschlossen.
. Error Code: -902. Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements The SQL: Select trallala ....

..

Erich

Das ist der Nachteil bei RAD: es geht schnell, aber es geht auch schnell wieder kaputt

Das DBGrid hat keine Eventhandler, in dem man die Exception abfangen könnte. Auf Applikationsebene oder mit madExcept könnte man es global abfangen. Dann hat man aber recht wenig Kontextinformationen, mit denen man dann die Abfrage hinter dem Grid schliessen und dann nach einer Retry-Message wieder öffnen könnte.

Mit ClientDataSet kann man in etwa so arbeiten:

Delphi-Quellcode:
Query.Close;
try
  Query.ParamByName('...').AsInteger := ...
  Query.Open;
  Connection.Close; // Verbindung darf getrennt werden, da ClientDataSet die Daten puffert
except
  on E:...Exception do
  begin
    if FragDenUser('Retry?') then
    begin
      VersuchsNocheinmal;
    end;
  end
end;
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat