CachedUpdates d'une FDMemtable
Bonjour,
dans le cadre d'un programme j'utilise une table mémoire que je remplie en fonction d'une requête dans un BDD
Code:
1 2
|
Datas.Produits.CopyDataSet(Datas.GQuery, [coRestart, coAppend]); |
Jusque là pas de soucis.
Maintenant, connaissant mes utilisateurs :roll:, je me suis mis en tête d'éviter des doublons et donc d'ignorer le/les ajouts inutiles. J'ai donc ajouté un clé primaire à ma table mémoire
et me suis alors penché sur les mises à jour en mémoire cache
Code:
1 2 3 4 5 6
|
Datas.Produits.CachedUpdates:=True;
Datas.Produits.CopyDataSet(Datas.GQuery, [coAppend]);
if Datas.Produits.UpdatesPending then
Datas.Produits.ApplyUpdates;
Datas.Produits.CachedUpdates:=False; |
Code:
1 2 3 4 5
| procedure TDatas.ProduitsAfterApplyUpdates(DataSet: TFDDataSet;
AErrors: Integer);
begin
Produits.Refresh;
end; |
Mais, là, il y a un hic :aie:
Citation:
[FireDAC][Comp][DS]-205. Impossible d'actualiser l'ensemble de données [Produits]. Les mises à jour en cache doivent être validées ou annulées et le mode Batch doit être terminé avant l'actualisation
1 - Je dois avoir oublié quelque chose mais je vois pas quoi ?
2 - Comment faire pour ignorer les insertions de lignes dupliquées ?
Merci, mes CachedUpdates sont loin dans ma mémoire et c'est un cas que je n'ai pas trouvé dans les exemples