Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler ermitteln und Ausgeben (https://www.delphipraxis.net/77634-fehler-ermitteln-und-ausgeben.html)

Andidreas 22. Sep 2006 07:46


Fehler ermitteln und Ausgeben
 
aloha...

ich denke mir das es wahrscheinlich so ein theme bzw. frage schon mal gab...
leider hab ich gerade bei meiner suche im forum nichts gefunden was mir weiterhilft...


so hab grad folgendes problem...

ich füge sätze von einem .txt file zu meiner mysql datenbank hinzu...
hab das ganze schön in eine try except schleife gepackt, das falls mein sql befehl nicht erfoglreich
war mein programm weiterläuft...
tritt ein fehler auf, geb ich mir denn sql befehl + satz aus dem .txt file denn ich zur db hinzufügen
wollte in ein anderes .txt file aus...

im prinzip weiß ich auch wo der fehler liegt (ich versuch einen satz hinzuzufügen der bereits vorhanden ist
also doppelter key)...
mich würde jetzt nur mal interessieren, ob mir delphi bzw. mein system nicht eine entsprechende fehlermeldung
zurück gibt, und wenn ja wie komm ich da ran???

hier ist mal noch ein bischen code:
Delphi-Quellcode:
procedure TMain_Form.prAddLOGPFL(aErgebnis : Array of String; sRow : String);

var
s : String;

begin

  Try
    With (dbm.Dat1Query) Do
    Begin
      Application.ProcessMessages;
      SQL.Clear;
      s :=   ('Insert Into DB1.Dat1 (ID, Style, PT, SalesOrg, ErstDate, Row_ID, '
         +'                       Color, Style_No, Old_Color, TextilCD1, Per1, '
         +'                       TextilCD2, Per2, TextilCD3, Per3, TextilCD4, '
         +'                       Per4, TextilCD5, Per5, PSID1, PSID2, PSID3, '
         +'                       PSID4, PSID5, PSID6) '
         +'Values('''+aErgebnis[0]+''','''+aErgebnis[1]+''', '''+aErgebnis[2]+''', '''+aErgebnis[3]+''', '
         +'      '''+aErgebnis[4]+''', '''+aErgebnis[5]+''', '''+aErgebnis[6]+''', '
         +'      '''+aErgebnis[7]+''', '''+aErgebnis[8]+''', '''+aErgebnis[9]+''', '
         +'      '''+aErgebnis[10]+''', '''+aErgebnis[11]+''', '''+aErgebnis[12]+''', '
         +'      '''+aErgebnis[13]+''', '''+aErgebnis[14]+''', '''+aErgebnis[15]+''', '
         +'      '''+aErgebnis[16]+''', '''+aErgebnis[17]+''', '''+aErgebnis[18]+''', '
         +'      '''+aErgebnis[19]+''', '''+aErgebnis[20]+''', '''+aErgebnis[21]+''', '
         +'      '''+aErgebnis[22]+''', '''+aErgebnis[23]+''', '''+aErgebnis[24]+''') '
         +'      ');
      SQL.Add(s);
      dbm.Dat1Query.ExecSQL;
    End;
  Except
    s   := s + #13;
    sRow := sRow + #13;
    Writeln(txtFileError, s);
    Writeln(txtFileError, sRow);
    If sError = ' ' Then
    Begin
      sError := 'X';
    End;
  End;

end;
ich hab dieses thema hier in sonstige fragen zu delphi gepackt, weil mich dieses thema auch allgemein interessiert..
also wie ich an die fehlermeldung die mir das system ausgibt rankomme?!

hoika 22. Sep 2006 07:54

Re: Fehler ermitteln und Ausgeben
 
Hallo,

Delphi-Quellcode:
try
except
  on E: Exception do
  begin
    E.message  enthält die einfache Fehlermeldung
  end;
end;

try
except
  on E: DBError do
  begin
    E.XXX   kommt immer auf die tatsächlcihe Exception an
  end;

  on E: Exception do
  begin
    E.message  enthält die einfache Fehlermeldung
  end;
end;

Andidreas 22. Sep 2006 08:55

Re: Fehler ermitteln und Ausgeben
 
danke für denn hinweis...


so gehts mit der komponente mysqldac:

Delphi-Quellcode:
procedure TMain_Form.prAddDat1(aErgebnis : Array of String; sRow : String);

var
s, sMySQLError : String;

begin

  Try
    With (dbm.Dat1Query) Do
    Begin
      Application.ProcessMessages;
      SQL.Clear;
      s :=   ('Insert Into db.Dat1 (ID, Style, PT, SalesOrg, ErstDate, Row_ID, '
        +'                       Color, Style_No, Old_Color, TextilCD1, Per1, '
        +'                       TextilCD2, Per2, TextilCD3, Per3, TextilCD4, '
        +'                       Per4, TextilCD5, Per5, PSID1, PSID2, PSID3, '
        +'                       PSID4, PSID5, PSID6) '
        +'Values('''+aErgebnis[0]+''','''+aErgebnis[1]+''', '''+aErgebnis[2]+''', '''+aErgebnis[3]+''', '
        +'      '''+aErgebnis[4]+''', '''+aErgebnis[5]+''', '''+aErgebnis[6]+''', '
        +'      '''+aErgebnis[7]+''', '''+aErgebnis[8]+''', '''+aErgebnis[9]+''', '
        +'      '''+aErgebnis[10]+''', '''+aErgebnis[11]+''', '''+aErgebnis[12]+''', '
        +'      '''+aErgebnis[13]+''', '''+aErgebnis[14]+''', '''+aErgebnis[15]+''', '
        +'      '''+aErgebnis[16]+''', '''+aErgebnis[17]+''', '''+aErgebnis[18]+''', '
        +'      '''+aErgebnis[19]+''', '''+aErgebnis[20]+''', '''+aErgebnis[21]+''', '
        +'      '''+aErgebnis[22]+''', '''+aErgebnis[23]+''', '''+aErgebnis[24]+''') '
        +'      ');
      SQL.Add(s);
      dbm.Dat1Query.ExecSQL;
    End;
  Except
    On E:EmySQLDatabaseError Do
    Begin
      sMySQLError := E.Message;
      sMySQLError := sMySQLError + #13;
      sRow := sRow + #13 + #13;
      Writeln(txtFileError, sMySQLError);
      Writeln(txtFileError, sRow);
      If sError = ' ' Then
      Begin
        sError := 'X';
      End;
    End;
  End;

end;
weiß jemand wies mit ZEOS geht???

und wie kann ich allgemeine fehler (also die jetzt nichts mit db's zu tun haben) festestellen, auch so wies oben hoika gepostet hat????

hoika 22. Sep 2006 09:18

Re: Fehler ermitteln und Ausgeben
 
Jepp,

alle Exceptions sind abgeleitet von Eception selber
und erben von dort das E.message


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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-2025 by Thomas Breitkreuz