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