Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

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

Exception richtig behandeln

  Alt 4. Okt 2009, 13:30
Hallo zusammen,

ich habe mal eine Frage zur Behandlung von Exceptions. Ich lese Daten aus einer Textdatei in eine Datenbank ein.

Wenn jetzt z.B. Das eingelesen Datum kein gültigen Datumswert hat, wird natürlich eine Meldung beim eintragen in die Datenbank erzeugt, die mir sagt, '' ist kein gültiges Datum. (siehe Anhang). Wie kann ich jetzt in mein Commit eine sauber Exeptionbehandlung einbauen, die diese Datensätze einfach nicht übernimmt.

Probiert habe ich das ganz so, funktioniert aber leider nicht.

Delphi-Quellcode:
  VST.BeginUpdate;
  for i := 0 to High(Parser.EntriesMB256) do begin
  Daten := TOMBSerie.Create;
  with Daten do
  begin
  DM_PS.Qry_InsertMB256.Close;
  DM_PS.QryImportMB256.ParamByName('LfdNr').AsInteger := Parser.EntriesMB256[i].LfdNr;
  DM_PS.QryImportMB256.ParamByName('Datum').AsDate := StrToDate(Parser.EntriesMB256[i].Datum);
  DM_PS.QryImportMB256.ParamByName('Uhrzeit').AsTime := StrToTime(Parser.EntriesMB256[i].Uhrzeit);
  DM_PS.QryImportMB256.ParamByName('Ereignis').AsString := Parser.EntriesMB256[i].Ereignis;
  DM_PS.QryImportMB256.ParamByName('Teilnehmer').AsString := Parser.EntriesMB256[i].Teilnehmer;
  DM_PS.QryImportMB256.ParamByName('Bereich').AsString := Parser.EntriesMB256[i].Bereich;

  DM_PS.QryImportMB256.ExecSQL;

  try

    DM_PS.ConPSSecur.Commit;
    DM_PS.QrySelectMaxIDMB256.Open;

  except
    on e : Exception Do begin
      ShowMessage(e.Message);
      end;

  end;



    Daten.ID := DM_PS.QrySelectMaxIDMB256.FieldByName('ID').AsInteger;
    Daten.LfdNr := Parser.EntriesMB256[i].LfdNr;
    Daten.Datum := Parser.EntriesMB256[i].Datum;
    Daten.Uhrzeit := Parser.EntriesMB256[i].Uhrzeit;
    Daten.Ereignis := Parser.EntriesMB256[i].Ereignis;
    Daten.Teilnehmer := Parser.EntriesMB256[i].Teilnehmer;
    Daten.Bereich := Parser.EntriesMB256[i].Bereich;
  end;
  VST.AddChild(nil, Daten);
  DM_PS.QrySelectMaxIDMB256.Close;
  Label6.Caption := IntToStr(StrToInt(Label6.Caption)+1);
  ProgBarDatei.Position := ID;
  Inc(ID);
  VST.ScrollIntoView(VST.GetLast, true);
  VST.EndUpdate;

  DM_PS.QrySelectMaxIDMB256.Close;
  end;
end;
Danke schon mal und Gruß

Jens
Miniaturansicht angehängter Grafiken
exeption_2_187.gif   exeption_1_695.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat