Firedac, BatchMove, ajout d'un champ à la table de destination
Bonjour, grâce à votre aide j'utilise batchmove !
Je copie une table du serveur localement dans une MemTable.
Pour le travail en local j'ai besoin d'ajouter un champ à cette MemTable.
J'obtiens la MemTable avec son champ en plus et ses données .
Mais je fais 2 fois le batchmove.execute , je suppose qu'il y a un autre moyen de mettre à jour la Memtable ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| FDTbHistoCdc.Open() ;
FDBatchMoveDataSetReader1.DataSet := FDTbHistoCdc ;
FDBatchMoveDataSetWriter1.DataSet := FDMmMGCFC ;
FDBatchMove1.Mode := dmAppendUpdate;
try
FDBatchMove1.Execute;
except
on E: EFDDBEngineException do
ShowMessage('MySQLtoMem : ' + E.Message);
end;
FDTbHistoCdc.close ;
//ajout champ TypeLgn
with FDMmMGCFC.FieldDefs do
with AddFieldDef do
begin
Name := 'TYPELGN' ;
DataType := ftInteger ;
end; |
Code:
1 2 3 4
| //update de la MemTable
FDMmMGCFC.close ;
FDMmMGCFC.Open ;
FDBatchMove1.Execute; |
J'ai essayé sans succès de remplacer les 3 dernières lignes par
Code:
1 2
| FDMmMGCFC.ApplyUpdates() ;
FDMmMGCFC.Refresh ; |