Thema: Delphi Fehler in SQL-Syntax

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#23

AW: Fehler in SQL-Syntax

  Alt 19. Sep 2017, 22:22
Der Rückgabewert der Funktion ist nur False, wenn ein Datenbankfehler geworfen wird. In anderen Fällen ist Result entweder True oder undefiniert.
(Eigentlich müsste es eine entsprechende Compilermeldung geben - Rückgabewert könnte undefiniert sein. o. ä .)

Wenn FDSQLiteConnection.ExecSQL(ASQL) ausgeführt wird und keine Exception fliegt, ist der Rückgabewert der Funktion true, unabhängig davon, ob das erwartete erledigt wurde oder nicht.
Delphi-Quellcode:
function TDMLSQLite.ExecuteSQL(ASQL : String) : Boolean;
begin
  Result := False;
  try
    FDSQLiteConnection.ExecSQL(ASQL);
    // Hier sollte man noch prüfen, ob das, was in ASQL gemacht werden
    // soll, auch wirklich gemacht wurde.
    // Bei Insert, Update und Delete findet man die Anzahl der
    // Änderungen in RowsAffected.
    // Bei 'ner Tabelle, die erstellt werden sollte, könnte man noch ein
    // select * from tabelle
    // hier ausführen und nur, wenn das erfolgreich ist folgt:
    Result := True;
  except
    on E: EDatabaseError do begin
      ShowMessage('Fehler beim Ausführen des Statements:' + #13#13 + ASQL + #13#13 + E.Message);
    end;
  end;
end;
  Mit Zitat antworten Zitat