![]() |
Datenbank: Firebird • Version: 2.1.2 • Zugriff über: ZeosLib
Wie Firebird-Exceptions handlen?
Hallo,
wie kann man am besten Exceptions aus einer Firebird-Datenbank in Delphi verarbeiten. Mir geht es darum, das ich nur die reine Meldung der Exception benötige. Bislang konnte ich zu dem Thema nichts passendes finden. Gruß Heiko |
Re: Wie Firebird-Exceptions handlen?
Hallo,
wie jede andere Meldung auch
Delphi-Quellcode:
Heiko
try
// sql-Befehle except on E: Exception do begin ShowMessage(E.message); // das wäre die Meldung end; end; |
Re: Wie Firebird-Exceptions handlen?
Schon klar, aber dann bekomme ich als Fehlermeldung
Zitat:
Zitat:
Der Exception-Typ EZSQLException ist da auch nicht wirklich hilfreich. |
Re: Wie Firebird-Exceptions handlen?
Warum der Text steht doch in der Exception?
|
Re: Wie Firebird-Exceptions handlen?
Nein, in der Exception, die Delphi ausgibt, steht
Zitat:
|
Re: Wie Firebird-Exceptions handlen?
Hallo,
hm, dann könnte man über die Fehlernummer gehen (Exception.?, musst mal sehen) und die Meldung selber generieren. Heiko |
Re: Wie Firebird-Exceptions handlen?
Du kannst ja selbst bestimmen, was der User lesen soll. Dazu hilft Dir vielleicht dieser Code-Schnipsel als Ansatz:
Delphi-Quellcode:
Die Idee ist es, den User zu informieren. Die genaue Meldung schreibt man ggf. in ein Errorlog.
case Errcode of
335544741:begin t:='Verbindung zur Datenbank verloren!'+#10#10+'Die Anwendung wird beendet.'; do_halt:=true; end; 335544721:begin t:='Verbindung zur Datenbank nicht möglich! Bitte ggfs. Dongle überprüfen!'+#10#10+'Die Anwendung wird beendet.'; do_halt:=true; end; 335544374:t:=' '; // Keine Daten 335544375:t:='X:'+ErrorMessage.text; 335544528:t:='X:'+ErrorMessage.text; 335544755:t:='Wechsel des Passwortes misslungen!'; 335544352:begin t:='Keine Zugriffsberechtigung eingerichtet.'+#10#10+'Die Anwendung wird beendet.'; do_halt:=true; end; 335544336,335544345:t:='Datensatz ist in Bearbeitung!'+#10#10+sqlmessage.text+#10#10+sql.text; 335544347:begin tt:=uppercase(ExtractDelimited(2, errormessage[3], [#34])); t:=uppercase(ExtractDelimited(5, errormessage[3], [' ',','])); t:=Format('Ungültiger Wert (%s) für das Feld ***%s*** !',[tt,t]); end; 335544349:begin tt:=uppercase(ExtractDelimited(2, errormessage[3], [#34])); t:=Format('Einen Eintrag mit diesen Parametern gibt es bereits in dieser Tabelle'+#13#10#13#10+ 'oder Sie haben nicht alle Felder für den Schlüssel (%s) ausgefüllt!',[tt]); end; -- Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz