Einzelnen Beitrag anzeigen

juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
124 Beiträge
 
Delphi XE5 Professional
 
#1

Delete funktioniert nicht

  Alt 25. Mai 2021, 18:16
Datenbank: MySql • Version: MariaDB • Zugriff über: Devart
Hallo Forum,
ich benutze Windows 10, Delphi 10.3 und MySql MariaDB.
In einem Programm benutze ich direkt hintereinander
Delete und Insert in eine Tabelle.

Delphi-Quellcode:
                Form1.MyCommand1.SQL.Clear;
                Form1.MyCommand1.SQL.Add('DELETE FROM aufstellung WHERE Datum=:datum AND Spielnr=:spielnr AND Verein=:verein AND Spieler=:spieler AND von=:von');
                Form1.MyCommand1.ParamByName('datum').Name:='datum';
                Form1.MyCommand1.ParamByName('datum').DataType:=ftDateTime;
                Form1.MyCommand1.ParamByName('datum').Value:=datum7;
                Form1.MyCommand1.ParamByName('spielnr').Name:='spielnr';
                Form1.MyCommand1.ParamByName('spielnr').DataType:=ftInteger;
                Form1.MyCommand1.ParamByName('spielnr').Value:=nummer7;
                Form1.MyCommand1.ParamByName('verein').Name:='verein';
                Form1.MyCommand1.ParamByName('verein').DataType:=ftInteger;
                Form1.MyCommand1.ParamByName('verein').Value:=vereinnr7;
                Form1.MyCommand1.ParamByName('spieler').Name:='spieler';
                Form1.MyCommand1.ParamByName('spieler').DataType:=ftInteger;
                Form1.MyCommand1.ParamByName('spieler').Value:=spielnr7a;
                Form1.MyCommand1.ParamByName('von').Name:='von';
                Form1.MyCommand1.ParamByName('von').DataType:=ftDateTime;
                Form1.MyCommand1.ParamByName('von').Value:=von7a;
                Form1.MyCommand1.Execute;
                if SqlRet then
// der SqlRet ist nach Ausführung TRUE
                  Form1.MyCommand1.SQL.Clear;
                  Form1.MyCommand1.SQL.Add('INSERT INTO aufstellung (Datum, Spielnr, Verein, Spieler, Position, Detail, von, bis) VALUES (:datum, :spielnr, :verein, :spieler, :pos, :det, :von, :bis)');
                  Form1.MyCommand1.ParamByName('datum').Name:='datum';
                  Form1.MyCommand1.ParamByName('datum').DataType:=ftDateTime;
                  Form1.MyCommand1.ParamByName('datum').Value:=datum7;
                  Form1.MyCommand1.ParamByName('spielnr').Name:='spielnr';
                  Form1.MyCommand1.ParamByName('spielnr').DataType:=ftInteger;
                  Form1.MyCommand1.ParamByName('spielnr').Value:=nummer7;
                  Form1.MyCommand1.ParamByName('verein').Name:='verein';
                  Form1.MyCommand1.ParamByName('verein').DataType:=ftInteger;
                  Form1.MyCommand1.ParamByName('verein').Value:=vereinnr7;
                  Form1.MyCommand1.ParamByName('spieler').Name:='spieler';
                  Form1.MyCommand1.ParamByName('spieler').DataType:=ftInteger;
                  Form1.MyCommand1.ParamByName('spieler').Value:=spielnr7;
                  Form1.MyCommand1.ParamByName('pos').Name:='pos';
                  Form1.MyCommand1.ParamByName('pos').DataType:=ftString;
                  Form1.MyCommand1.ParamByName('pos').Value:=pos7;
                  Form1.MyCommand1.ParamByName('det').Name:='det';
                  Form1.MyCommand1.ParamByName('det').DataType:=ftString;
                  Form1.MyCommand1.ParamByName('det').Value:=det7;
                  Form1.MyCommand1.ParamByName('von').Name:='von';
                  Form1.MyCommand1.ParamByName('von').DataType:=ftDateTime;
                  Form1.MyCommand1.ParamByName('von').Value:=von7;
                  Form1.MyCommand1.ParamByName('bis').Name:='bis';
                  Form1.MyCommand1.ParamByName('bis').DataType:=ftDateTime;
                  Form1.MyCommand1.ParamByName('bis').Value:=bis7;
                  Form1.MyCommand1.Execute;
                  if not SqlRet then
                  begin
// Fehlermeldung dublicate Key
Alle Felder sind gleich und in Ordnung.
Warum wird der Delete nicht ausgeführt??????
Ich stehe vor einem Rätsel.
Danke und Gruß
Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat