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?!