Hallo zusammen,
ich habe das Problem, dass mit folgendem Aufruf nicht sichergestellt ist, dass die Daten in der
DB gelöscht werden obwohl Result = true zurück gegeben wird
Delphi-Quellcode:
var
lQuery: TAdoQuery;
begin
lQuery := TAdoQuery.Create(nil);
lQuery.Connection := GetConnection();
Result := true;
lQuery.SQL.Text := format('delete Table1 where RelID = %d', [iID]);
Result := Result and (lQuery.ExecSQL > 0);
lQuery.SQL.Text := format('delete Table2 where RelID = %d', [iID]);
Result := Result and (lQuery.ExecSQL > 0);
Insgesamt sind es 4 Tabellen. Manchmal wurden die Daten in allen Tabellen gelöscht, manchmal wurden sie in einer der Tabellen nicht gelöscht.
Nach der Umstellung auf
Delphi-Quellcode:
Result := 0;
lQuery.SQL.Text := format('delete Table1 where RelID = %d', [iID]);
Result := Result + lQuery.ExecSQL;
lQuery.SQL.Text := format('delete Table2 where RelID = %d', [iID]);
Result := Result + lQuery.ExecSQL;
werden die Daten jetzt immer gelöscht. Diese Lösung ist eh besser für mich, aber ich frag mich trotzdem was bei der Booleschen Variante schief geht