DatabaseError und Debugger

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

DatabaseError und Debugger

Beitrag von Hercules »

Hallo an Alle !
Es gibt da ein Problem, das hier im Forum schon bekannt ist, aber ich konnte
noch keine Lösung im Forum finden.

Wenn ich einen Datenbankfehler abfangen will, dann geht das ja z.B. so:

Code: Alles auswählen

. . . . . .
 
  Try
    MeineDatenbank.Post;
    except on EDatabaseError do
      begin
      Showmessage('[color=#BF0000]Fehler: Es ist ein Datenbankfehler aufgetreten[/color].');
      end;
  end;
 
. . . . . .
Das funktioniert nur, wenn die EXE ohne Debugger aufgerufen wir richtig.
Im Debugger selbst geht das nicht, da läuft das Programm bei dem
Befehl 'MeineDatenbank.Post' in ein Fehlerfenster und nicht auf mein Showmessage.

Hat da schon jemand eine Lösung gefunden ?
Schönen Tag noch, Hercules.

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: DatabaseError und Debugger

Beitrag von KOBOLD Messring GmbH »

Richtig, im Debugger der IDE kommt man immer auf ein Fehlerfenster, kann dann aber "Continue" (oder so) anklicken, und dann geht der weiter auf die eigene Routine.
Ich habe so was auch:

Code: Alles auswählen

TRY
     SQLQuery2.Open; { Wenn das funktioniert unterstützt die DB OUTER JOIN mit mehreren Kriterien, wenn nicht: weiter bei EXCEPT }
     WHILE NOT SQLQuery2.EoF DO
      Begin
          { Datensätze abfragen }
        SQLQuery2.Next;
      End; { While Not SQLQuery2.EoF }
     SQLQuery2.Close;
    EXCEPT { Hier geht's weiter, wenn die DB keine OUTER JOIN mit mehreren Bedingungen unterstützt }
     { Andere Abfrage ohne OUTER JOIN mit mehreren Kriterien }
   End; { Try..Except: eine Outer Join Abfrage mit mehreren Bedingung }
und das geht gut. Zwar kommt - je nach Datenbank - das Fehlerfenster, aber dann geht's weiter.
Seit dem Update auf Lazarus 0.9.28 bietet das Fehlerfenster auch noch an "Ignorieren - zukünftig diese Exception nicht mehr abfangen" (oder so), habe mich aber noch getraut, dies anzuklicken...

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: DatabaseError und Debugger

Beitrag von Hercules »

Hallo Kobold,
vielen Dank für Deine schnelle Reaktion. Ich habe vor Lazarus mit Delphi programmiert.
Da kann man sowas in den Einstellungen einstellen. Ich bin mir nicht ganz sicher, aber
ich glaube in Lazarus gibt es auch eine solche Stelle. Hab' zwar in den Einstellungen
schon einiges ausprobiert, aber fündig bin ich leider noch nicht geworden.
M.f.G Hercules

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6945
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: DatabaseError und Debugger

Beitrag von af0815 »

Normalerweise unter Einstellungen->Debugger->Sprach-Ausnahmen oder Betriebssystem-Ausnahmen
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten