AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MYSQL-Fehler nicht mit 'try ... finally' abzufangen?
Thema durchsuchen
Ansicht
Themen-Optionen

MYSQL-Fehler nicht mit 'try ... finally' abzufangen?

Ein Thema von c-bob · begonnen am 23. Jun 2009 · letzter Beitrag vom 23. Jun 2009
Antwort Antwort
c-bob

Registriert seit: 11. Jun 2009
12 Beiträge
 
#1

MYSQL-Fehler nicht mit 'try ... finally' abzufangen?

  Alt 23. Jun 2009, 05:36
Datenbank: MYSQL • Version: 5 • Zugriff über: ZEOS (aktuelle Version)
Hi, iche schonwieder!

Kurze Frage: wenn ich ein Query mit SQL befülle und dann per "open" bzw. "ExecSQL" ausführe und dann kommt ein MYSQL-Fehler, kann ich den nicht mit "try ... finally" abfangen, richitg?!

Aber wie mache ich das dann, das nicht das ganze PRogramm stehen bleibt und der Rechner, der eigentlich ohne Bedienelemente ist, quasi ein Anzeigesystem, mit dem Programm erstmal weiter fortfährt?

-C-
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: MYSQL-Fehler nicht mit 'try ... finally' abzufangen?

  Alt 23. Jun 2009, 05:38
Es kommt darauf an, was du mit Fehler meinst. M.W wirft Zeos Exceptions, welche sich dann mit try .. Except behandlen lassen
Markus Kinzler
  Mit Zitat antworten Zitat
c-bob

Registriert seit: 11. Jun 2009
12 Beiträge
 
#3

Re: MYSQL-Fehler nicht mit 'try ... finally' abzufangen?

  Alt 23. Jun 2009, 05:59
Na bspw. folgender Vorgang:

SQL-Statement wird abgesetzt, in dem ist auf Grund nicht beachteter Schreibweise ein Komma Anstelle des Dezimalpunktes in einem Float. Ich selber habe das leider nicht (noch nicht) abgefangen. Aber es geht ja ums Prinzip.
Danach kommt dann folgerichtig ein SQL-Fehler. Den dachte ich aber dann mit try ... finally abzufangen und hab kurzerhand die gesamte Prozedur eingschlossen - nicht fein, aber dafür quick&dirty - es soll erstmal funktionieren.

Aber was ist dabei nun falsch?

EDIT: Ich glaube, es war mein Fehler - ich muss try .. except nutzen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#4

Re: MYSQL-Fehler nicht mit 'try ... finally' abzufangen?

  Alt 23. Jun 2009, 06:05
Hallo,

du müsstest das folgendermaßen hinbekommen. Die gewünschte Abarbeitung vom Programm kommt unter try... und was im Fall einer Exeption passieren soll unter Except.

z.B.

Delphi-Quellcode:

//..irgendwas
try
  //..QryTest.Irgendwas
  QryTest.ExecSQL
except
  ShowMessage('Da war ein Fehler');
end;
Mit den richtigen Anweisungen, kannst Du die Exeption auch noch abfangen und z.B. im ShowMessage ausgeben.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
c-bob

Registriert seit: 11. Jun 2009
12 Beiträge
 
#5

Oops, Sorry! War: MYSQL-Fehler nicht mit 'try ... f

  Alt 23. Jun 2009, 06:10
Muss mich entschuldigen - ist halt n Anfänger-Fehler. Thread kann zu bzw. gelöscht werden

Wenn man Exceptions abfangen will, muss man eben auch try ... except nutzen und nicht try .. finally

... man bin ich blöd ....


@Jens:

Ja, Du warst auch noch schneller mit Deinem Post
.... blamabel blamabel ...
Aber danke für Mühe und Geduld trotz der wahrscheinlich immerwiederkehrenden Anfänger-Probleme
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: MYSQL-Fehler nicht mit 'try ... finally' abzufangen?

  Alt 23. Jun 2009, 09:15
Hallo,

und schnell noch den "Folge-Fehler" erklärt

try/except hält das Programm trotzdem an,
wenn man es aus der IDE startet.
Das könnte man in der IDE noch weg-konfigurieren,
würde ich aber nicht machen,
weil das die Fehlersuche sehr erschwert.

Standalone klappt das dann aber wie gewünscht.

Noch ein kleiner Tip.
Das finally macht trotzdem Sinn.
Delphi-Quellcode:
try
  with Query do
  begin
    SQL.Clear;
    SQL.Add('Select ... ');
    Open;
    try
      while not EOF do
      begin
       // Daten auslesen

        Next;
      end;
    finally
      Close;
    end;
  end;
except
 ; // nix tun
end;
Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 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