Hallo nahpets,
danke für Deine Hinweise!
Den Format(Update... habe ich zwar nicht zum laufen bekommen.
Es gab Probleme mit der letzten ')' - ohne ergab Syntaxfehler , mit ergab
MySQL-Fehler
Ist aber ein interessanter Ansatz!
Letztlich war der Hinweis auf + CONCAT('+feld2+', ' 06:00:00') entscheidend.
Also Pause gemacht, was getrunken (offensichtlich war mein Oberstübchen trocken gelaufen).
Dann den Concat erst einmal richtig beschrieben und das feld2 so eingebunden wie es auch Sinn macht.
Code:
CREATE DEFINER=`root`@`%` PROCEDURE `VLDAT_INTERVAL`(tableName varchar(255), feld1 varchar(20), feld2 varchar(40), Feld3 Varchar(20), mdatum varchar(18))
BEGIN
set @serial:=0;
set @sqlstmt := CONCAT('UPDATE ', tableName, ' SET ', feld1, ' = ' , feld2, ' + INTERVAL (@serial:=@serial+2) MINUTE where ', feld3, ' = ', mdatum);
PREPARE stmt FROM @sqlstmt;
EXECUTE stmt;
END
Aufruf mit:
Code:
mdat1:='2016-10-11';
mdat2:=mdat1+' 06:00:00';
StoredProc_VLDAT_Interval.Params[0].Value := 'ag_vorlage';
StoredProc_VLDAT_Interval.Params[1].Value := 'vldat';
StoredProc_VLDAT_Interval.Params[2].Value := Quotedstr(mdat2);
StoredProc_VLDAT_Interval.Params[3].Value := 'vordat';
StoredProc_VLDAT_Interval.Params[4].Value := Quotedstr(mdat1);
StoredProc_VLDAT_Interval.ExecProc;
Es bestätigt sich wieder: Kaum macht man's richtig, schon geht es!