Registriert seit: 10. Nov 2016
Ort: Bad Harzburg
6 Beiträge
Delphi XE8 Professional
|
AW: Mysql Feldname ändern
11. Nov 2016, 19:44
Hallo,
danke für Eure Hinweise!
Ich arbeite hier mit 6 Tabellen gleicher struktur in denen die Daten hin und hergeschoben werden. Daher war die Feldstruktur bekannt.
Gestestet habe ich in der Workbench:
set @serial:=0;
UPDATE vorlage.artikel_vorlage SET vordat = '2016-10-06';
UPDATE vorlage.artikel_vorlage SET vldat = CONCAT(vordat, ' 07:00:00') + INTERVAL (@serial:=@serial+2) MINUTE where vordat='2016-10-06';
das Funktioniert nun auch.
Um das StoredProc ordentlich zu generieren habe ich folgendes geändert:
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
mdat1:='2016-11-11';
Aufruf mit:
StoredProc_VLDAT_Interval.Params[0].Value := 'ag_vorlage';
StoredProc_VLDAT_Interval.Params[1].Value := mdat1;
StoredProc_VLDAT_Interval.Params[2].Value := 'vldat';
StoredProc_VLDAT_Interval.Params[3].Value := 'vordat';
StoredProc_VLDAT_Interval.ExecProc;
leider bekomme ich den Syntax Fehler: check the ... for the rigth syntax to use near '-11-11' at line 1
Doch noch ein paar ''' vergessen?
Ich weiß nur nicht wo ich die noch setzen sollte.
Für weitere Hinweise wäre ich dankbar!
|