Hallo Zusammen,
ich habe hier mal eine Grundsatzfrage zum Thema Programmieren in Delphi
Delphi-Quellcode:
procedure TfrmXXX.ZeileDelExecute(Sender: TObject);
begin
dmXXX.qGETFertigteileeingang.ParamByName('AZID').AsInteger := dmXXX.AZQ.fieldbyname('AZ.ID').asinteger;
dmXXX.qGETFertigteileeingang.Open;
if (dmXXX.qGETFertigteileeingang.FieldByName('Anzahl').AsInteger > 0) then
begin
MessageDlg('Löschen der Auftragszeile NICHT möglich, da bereits Fertigteile daraus eingebucht wurden!', mtError, [mbOK], 0);
dmXXX.qGETFertigteileeingang.close;
exit;
end;
dmXXX.qGETFertigteileeingang.close;
.
. .
..
code hier noch nicht zu ende.
Erklärung:
Es geht hier um einen Rowcount mit anschließender Auswertung, wenn die Anzahl > 0 dann soll er nach Meldung direkt abbrechen und die Procedure verlassen.
Die
query möchte ich aber immer geschlossen wissen.
Frage:
Unter Berücksichtigung von gutem Programmierstyle, Codewartbarkeit u.a. :
Ist es so korrekt wie oben dargestellt?
Oder benutze ich eine Variable als Zwischenspeicher wie hier:
Delphi-Quellcode:
procedure TfrmAuftrag.ZeileDelExecute(Sender: TObject);
var
azid:Integer;
begin
dmAuftrag.qGETFertigteileeingang.ParamByName('AZID').AsInteger := dmauftrag.AZQ.fieldbyname('AZ.ID').asinteger;
dmAuftrag.qGETFertigteileeingang.Open;
azid := dmAuftrag.qGETFertigteileeingang.FieldByName('Anzahl').AsInteger;
dmAuftrag.qGETFertigteileeingang.close;
if (azid > 0) then
begin
MessageDlg('Löschen der Auftragszeile NICHT möglich, da bereits Fertigteile daraus eingebucht wurden!', mtError, [mbOK], 0);
exit;
end;
Oder gib es einen ganz anderen Ansatz dafür?
Antworte bitte mit Begründung
danke euch
grüße
Coderi