Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi IBDAC und Connection (https://www.delphipraxis.net/121682-ibdac-und-connection.html)

hanspeter 2. Okt 2008 12:22

Datenbank: Firebird • Zugriff über: IBDAC

IBDAC und Connection
 
Hallo,

Ich versuche eine Datenbank zu öffnen.
Wenn kein Zugriff auf die Datenbank möglich ist, erfolgt eine IBDAC-interne Fehlermeldung.
Ich bekomme es nicht hin, diese Fehlermeldung zu unterdrücken, da eine eigene
Behandlung erfolgen soll.

Also

Delphi-Quellcode:
try
  IbConnection.Connect;
except
  Behandlungsroutine
end;
Auch wenn ich den Event "onError" belege, wird die Fehlermeldung angezeigt.

(I/O Error for file .. )
Das System kann die angegebene Datei nicht finden..)

Erst nach Anzeige der Fehlermeldung wird der except - Zweig abgearbeitet.

Gibt es einen Tip, wie ich das Problem lösen kann?
Oder gibt es eine andere Möglichkeit zu testen, ob die Serverdatenbank erreichbar ist.

(Besteht kein Zugtiff auf den Server, so muss das System möglichst unsichtbar auf einen Notbetrieb
umschalten und Daten lokal sichern.


Mit Gruß
peter

alzaimar 2. Okt 2008 12:43

Re: IBDAC und Connection
 
Wieso sollst Du die Meldung nicht unterdrücken können? Wenn es eine Exception ist, dann wird sie nur in der IDE angezeigt (wenn 'Bei Exceptions anhalten' in en Optionen aktiviert ist).

Starte die EXE mal außerhalb der IDE.

hanspeter 2. Okt 2008 13:04

Re: IBDAC und Connection
 
Zitat:

Zitat von alzaimar
Wieso sollst Du die Meldung nicht unterdrücken können? Wenn es eine Exception ist, dann wird sie nur in der IDE angezeigt (wenn 'Bei Exceptions anhalten' in en Optionen aktiviert ist).

Starte die EXE mal außerhalb der IDE.

auf die Idee hätte ich auch selber kommen können.
Probiere ich heute abend aus.

Gruß
Peter

pixfreak 3. Okt 2008 06:32

Re: IBDAC und Connection
 
Moin,

der OnError Event funktioniert bei mir ohne Probleme...

Delphi-Quellcode:
procedure TForm1.IBCConnection1Error(Sender: TObject; E: EDAError;
  var Fail: Boolean);
begin
  // E.ErrorCode steckt die Fehlernummer
  // E.Message steckt der Fehler im Klartext drinne

  Fail := false; // muss false sein, damit die Exception als behandelt gilt, sonst geht es weiter :)
end;
Ich hoffe das hilft Dir weiter. Eigentlich müsstest Du diese Exception auch im try except Block abfangen können müssen.


VG Pixfreak


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz