Hallo,
ich bin immer noch dabei meine Exceptionbehandlungen zu ergänzen. Ist es OK, wenn ich am Anfang meiner Funktion, in der verschiedene Fehler auftreten können, Umwandlungen von Zeit in String oder String in Integer etc. in einem großen gemeinsamen
Block packe. Und wäre es OK, wenn der
except
Teil dann leer ist. Wenn ich wie unten das so machen würde, dann wäre ja im except Block keine Anweisung notwendig, da ja der obere
try
Block komplett abgebrochen wird. Also denke ich brauche ich auch kein Rollback und so.
Delphi-Quellcode:
procedure TForm1.TreeViewResultMB100(ParserTreeViewMB100: TMyBaseParser);
var
Daten : TOMBSerie;
begin
try
QryMB100.Close;
QryMB100.SQL.Text := 'INSERT INTO MB100'+
'(LFDNR, DATUM, UHRZEIT, EREIGNIS, TEILNEHMER, BEREICH)'+
'VALUES(:LfdNr,:Datum,:Uhrzeit,:Ereignis,:Teilnehmer,:Bereich)';
QryMB100.ParamByName('Lfdnr').AsInteger := ParserTreeViewMB100.EntriesMB100[0].LfdNr;
QryMB100.ParamByName('Datum').AsDate := StrToDate(ParserTreeViewMB100.EntriesMB100[0].Datum);
QryMB100.ParamByName('Uhrzeit').AsTime := StrToTime(ParserTreeViewMB100.EntriesMB100[0].Uhrzeit);
QryMB100.ParamByName('Ereignis').AsString := ParserTreeViewMB100.EntriesMB100[0].Ereignis;
QryMB100.ParamByName('Teilnehmer').AsString := ParserTreeViewMB100.EntriesMB100[0].Teilnehmer;
QryMB100.ParamByName('Bereich').AsString := ParserTreeViewMB100.EntriesMB100[0].Bereich;
QryMB100.ExecSQL;
ConSecurdat.Commit;
QryMB100.Close;
QryMB100.SQL.Text := 'Select Max(ID) As ID From MB100';
QryMB100.Open;
VST.BeginUpdate;
Daten := TOMBSerie.Create;
with Daten do
begin
Daten.ID := QryMB100.FieldByName('ID').AsInteger;
Daten.LfdNr := ParserTreeViewMB100.EntriesMB100[0].LfdNr;
Daten.Datum := ParserTreeViewMB100.EntriesMB100[0].Datum;
Daten.Uhrzeit := ParserTreeViewMB100.EntriesMB100[0].Uhrzeit;
Daten.Ereignis := ParserTreeViewMB100.EntriesMB100[0].Ereignis;
Daten.Teilnehmer := ParserTreeViewMB100.EntriesMB100[0].Teilnehmer;
Daten.Bereich := ParserTreeViewMB100.EntriesMB100[0].Bereich;
end;
VST.AddChild(nil, Daten);
if VST.RootNodeCount >= 4001 then
begin
VST.DeleteNode(VST.GetFirst);
end;
VST.EndUpdate;
VST.ScrollIntoView(VST.GetLast, true);
QryMB100.Close;
DataMB256plus := '';
except
end;
end;
Danke schon mal Gruss
Jens