Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Seltsames Phänomen mit ExexSQL

  Alt 10. Mai 2018, 12:11
Mich wundert eher, dass das Statement ohne FROM überhaupt ausgeführt wird.
Beim MS SQL-Server ist das FROM ein optionales Schlüsselwort: https://docs.microsoft.com/de-de/sql...ql-server-2017

Und falls es darum gehen sollte, Detaildaten zu einem Mastersatensatz zu löschen, würde ich das eher auf DB-Ebene über eine Löschregel handhaben.
Wenn du das alles in eine Transaktion packst kann hier nix passieren.


Das Problem ist hier das du den Result-Wert falsch behandelst.
ExecSQL liefert die Anzahl der betroffenen Datensätze zurück. Ist dieser für eine Löschaktion 0, so ist result = False.
Und wenn du im Projekt die Option eingestellt hast, Ausdrücke nur soweit wie nötig auszuführen sorgt ein

Result := Result and (lQuery.ExecSQL > 0); dafür das nur die Zeile bis zum erkennen von and ausgewertet wird und das ExecSQL nicht mehr aufgerufen wird.

Das ist aber auch nicht nötig. ExecSQL wird ein Exception schmeißen wenn eine Löschaktion nicht erfolgreich sein sollte.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat