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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
FDMmMGCFC.ApplyUpdates() ;
  FDMmMGCFC.Refresh ;