ich habe folgende Procedure:
Code: Alles auswählen
procedure THistorie.WriteData;
begin
with dtmBasis.qrySQL do
begin
if FID = 0 then
begin // Insert
SQL.Clear;
SQL.Add('Insert Into Historien');
SQL.Add('(fk_adresse, fk_kontakt, fk_auftrag, fk_akte, fk_aktenadresse, fk_adressart, his_bezeichnung, his_datei, his_zeichen, his_versandart, his_terminam, his_terminvon, his_terminbis, his_notiz, his_erledigt)');
SQL.ADD('VALUES');
SQL.ADD('(:fk_adresse, :fk_kontakt, :fk_auftrag, :fk_akte, :fk_aktenadresse, :fk_adressart, :his_bezeichnung, :his_datei, :his_zeichen, :his_versandart, :his_terminam, :his_terminvon, :his_terminbis, :his_notiz, :his_erledigt);');
end
else
begin //Update
SQL.Clear;
SQL.ADD('UPDATE Historien SET');
SQL.ADD('fk_adresse = :fk_adresse,');
SQL.ADD('fk_kontakt = :fk_kontakt,');
SQL.ADD('fk_auftrag = :fk_auftrag,');
SQL.ADD('fk_akte = :fk_akte,');
SQL.ADD('fk_aktenadresse = :fk_aktenadresse,');
SQL.ADD('fk_adressart = :fk_adressart,');
SQL.ADD('his_bezeichnung = :his_bezeichnung,');
SQL.ADD('his_datei = :his_datei,');
SQL.ADD('his_zeichen = :his_zeichen,');
SQL.ADD('his_versandart = :his_versandart,');
SQL.ADD('his_terminam = :his_terminam,');
SQL.ADD('his_terminvon = :his_terminvon,');
SQL.ADD('his_terminbis = :his_terminbis,');
SQL.ADD('his_notiz = :his_notiz,');
SQL.ADD('his_erledigt = :his_erledigt,');
SQL.ADD('his_stamp = CURRENT_TIMESTAMP');
SQL.ADD('WHERE idhistorie = :idhistorie;');
end;
Prepare;
Params.ParamByName('fk_adresse').AsInteger := FIDAdresse;
Params.ParamByName('fk_kontakt').AsInteger := FIDKontakt;
Params.ParamByName('fk_auftrag').AsInteger := FIDAuftrag;
Params.ParamByName('fk_akte').AsInteger := FIDAkte;
Params.ParamByName('fk_aktenadresse').AsInteger := FIDAktenadresse;
Params.ParamByName('fk_adressart').AsInteger := FIDAdressart;
Params.ParamByName('his_bezeichnung').AsString := FBezeichnung;
Params.ParamByName('his_datei').AsString := FDatei;
Params.ParamByName('his_zeichen').AsString := FZeichen;
Params.ParamByName('his_versandart').AsString := FVersandart;
Params.ParamByName('his_terminam').AsString := FTerminam;
Params.ParamByName('his_terminvon').AsString := FTerminvon;
Params.ParamByName('his_terminbis').AsString := FTerminbis;
Params.ParamByName('his_notiz').AsString := FNotiz;
Params.ParamByName('his_erledigt').AsInteger := FErledigt;
ExecSQL;
end;
end;
ZEOS-Log:
Code: Alles auswählen
2019-01-11 20:01:13 cat: Prepare, proto: mysql, msg: Statement 6 : UPDATE Historien SET fk_adresse = ?, fk_kontakt = ?, fk_auftrag = ?, fk_akte = ?, fk_aktenadresse = ?, fk_adressart = ?, his_bezeichnung = ?, his_datei = ?, his_zeichen = ?, his_versandart = ?, his_terminam = ?, his_terminvon = ?, his_terminbis = ?, his_notiz = ?, his_erledigt = ?, his_stamp = CURRENT_TIMESTAMP WHERE idhistorie = ?;
2019-01-11 20:01:13 cat: Bind prepared, proto: mysql, msg: Statement 6 : 1,0,1,0,0,0,'Projekt: PR 2018 / 0001','aaaaaaaaaaa','bbbbbbbbbbbbbb','per Brief','','','','',0,null,
2019-01-11 20:01:13 cat: Execute, proto: mysql, msg: Statement 6 : UPDATE Historien SET fk_adresse = ?, fk_kontakt = ?, fk_auftrag = ?, fk_akte = ?, fk_aktenadresse = ?, fk_adressart = ?, his_bezeichnung = ?, his_datei = ?, his_zeichen = ?, his_versandart = ?, his_terminam = ?, his_terminvon = ?, his_terminbis = ?, his_notiz = ?, his_erledigt = ?, his_stamp = CURRENT_TIMESTAMP WHERE idhistorie = ?;
NACHTRAG: Wenn ich idhistorie als Parameter habe, sollte ich diese Parameter auch bedienen
