Wenn Du den Fehler, den Du hier (wie selbstverständlich)
SET vldat = '+Quotedstr(mdat2)+'
behebst, auch in der StoredProc behebst, sollte diese funktionieren.
Du baust in der StoredProc einen String zusammen und dieser String enthält u. a. auch einen String, der muss dann in der StoredProc in ' gesetzt werden. Und diese fehlen hier:
SQL-Code:
CREATE DEFINER=`root`@`%` PROCEDURE `VLDAT_INTERVAL`(tableName varchar(255), mdatum varchar(20), feld1 varchar(20), feld2 varchar(20))
BEGIN
set @serial:=0;
set @sqlstmt := CONCAT('UPDATE ', tableName, ' SET '+feld1+' = ' + CONCAT('+feld2+', ' 06:00:00') + ' + INTERVAL (@serial:=@serial+2) MINUTE where '+feld2+' = ', mdatum );
PREPARE stmt FROM @sqlstmt;
EXECUTE stmt;
END
um Feld1 herum.
Vermutlich würde aber auch dashier ausreichen:
Delphi-Quellcode:
StoredProc_VLDAT_Interval.Params[0].Value := 'ag_vorlage';
StoredProc_VLDAT_Interval.Params[1].Value := QuotedStr(mdat1);
StoredProc_VLDAT_Interval.Params[2].Value := 'vldat';
StoredProc_VLDAT_Interval.Params[3].Value := 'vordat';
StoredProc_VLDAT_Interval.ExecProc;