Einzelnen Beitrag anzeigen

hajo2016

Registriert seit: 10. Nov 2016
Ort: Bad Harzburg
6 Beiträge
 
Delphi XE8 Professional
 
#4

AW: Mysql Feldname ändern

  Alt 11. Nov 2016, 18: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!
  Mit Zitat antworten Zitat