Einzelnen Beitrag anzeigen

hajo2016

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

Mysql Feldname ändern

  Alt 10. Nov 2016, 23:19
Datenbank: Mysql • Version: 6.3 • Zugriff über: FireDac
Hallo zusammen,
ich übernehme Dbase Tabellen in eine Mysql Datenbank.
Im Projekt spreche ich ein storedProcedur an:

CREATE DEFINER=`root`@`%` PROCEDURE `VLDAT_INTERVAL`(tableName varchar(255), mdatum varchar(12))
BEGIN
set @serial:=0;
set @sqlstmt := CONCAT('UPDATE ', tableName, ' SET vldat = ' + CONCAT(vordat, ' 06:00:00') + ' + INTERVAL (@serial:=@serial+2) MINUTE where vordat = ', mdatum );
PREPARE stmt FROM @sqlstmt;
EXECUTE stmt;
END

mit der Spalte 'vordat' gibt es aber Probleme (anderer Spaltenname alles ok). Fehlermeldung: 'Das Feld vordat ist nicht vorhanden'.
Ich versuche nun krampfhaft bei der Datenmigration von Dbase nach Mysql, nach dem Batchmove, die Spalte vordat in vrdat umzubenennen.

Anweisung:

cs := TStringList.Create;
cs.Add('ALTER TABLE BL_Vorlage');
cs.Add('CHANGE VORDAT VRDAT DATE NULL');
FDCommand2.CommandText := cs;
FDCommand2.Execute;

Leider ohne Erfolg (liegt wohl auch hier an dem Spaltennamen).

Auch der Versuch die Dbase-Tabelle vor dem Batchmove zu verändern:

Query1.SQL.Clear;
Query1.SQL.ADD('ALTER TABLE BL_Vorlage RENAME COLUMN VORDAT to VRDAT');
Query1.ExecSQL;

schlägt fehl. (Ich bin mir auch nicht sicher ob die Dbase-Anweisung richtig ist! Habe aber schon all möglichen Schreibweisen probiert)

Hat jemand eine Idee, wie ich die Feldänderung realisieren kann?!
  Mit Zitat antworten Zitat