Es ist noch komplizierter:
Zwei Datenbanken zwischen denen über unterschiedliche Datenbankkomponenten kommuniziert werden soll.
Quelle = FireDac -> Ziel =
ADO
bzw. umgekehrt.
Viele der BatchMovekomponenten wollen aber als Quelle und als Ziel 'nen Nachfolger von TDataSet, so dass die unterschiedlichen Datenbankkommponenten eigentlich "wurscht" sein sollten.
Nachfolger von TDataSet rein, Nachfolger von TDataSet raus.
Aus oben verlinktem StackOverFlow geklauter Source etwas angepasst und als ungetestete Idee gedacht:
Delphi-Quellcode:
var
DataWriter: TFDBatchMoveDataSetWriter;
DataReader: TFDBatchMoveDataSetReader;
BatchMove: TFDBatchMove;
begin
DataReader := nil;
DataWriter := nil;
BatchMove := nil;
try
DataReader := TFDBatchMoveDataSetReader.Create(nil);
DataWriter := TFDBatchMoveDataSetWriter.Create(nil);
BatchMove := TFDBatchMove.Create(nil);
DataReader.DataSet := qryvoncon1;
DataReader.Rewind := true;
DataWriter.DataSet := qryvoncon2;
BatchMove.Options := [poClearDestNoUndo, poCreateDest];
BatchMove.Reader := DataReader;
BatchMove.Writer := DataWriter;
BatchMove.Execute;
finally
DataReader.Free;
DataWriter.Free;
BatchMove.Free;
end;
end;
Lektüre dazu:
FireDAC.TFDBatchMove Sample