Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#8

AW: Mysql Feldname ändern

  Alt 12. Nov 2016, 09:50
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;
  Mit Zitat antworten Zitat