Partager via


ISaveChangeWithChangeUnitsContext2::SetConstraintConflictOnChangeUnit

Signale qu'un conflit de contraintes s'est produit lorsque le fournisseur de destination a essayé d'appliquer la modification au réplica de destination, pour une modification qui contient des unités de modification.

Syntaxe

HRESULT SetConstraintConflictOnChangeUnit(
  ISyncChangeUnit * pChangeUnit);

Paramètres

  • pChangeUnit
    [in] Unité de modification sur le réplica de destination qui est en conflit avec l'unité de modification à appliquer.

Valeur de retour

  • S_OK.

  • E_INVALIDARG lorsque pChangeUnit est introuvable dans la modification à appliquer.

  • E_POINTER.

  • SYNC_E_INVALID_OPERATION si un conflit de contraintes ou une erreur récupérable a déjà été définie sur cet objet.

Notes

Un conflit de contraintes se produit lorsqu'un fournisseur de destination essaie d'appliquer une modification au réplica de destination, et que cette modification ne respecte pas une contrainte du réplica de destination. Pour les unités de modification, cela signifie généralement que la modification ne respecte pas une logique métier sur le réplica de destination. Pour illustrer un conflit de logique métier, prenons un réplica à fidélité faible qui stocke deux unités de modification : name et country. Prenons également un réplica à fidélité élevée qui stocke trois unités de modification : name, state/province et country. Le réplica à fidélité élevée contient la logique métier qui vérifie le champ state/province par rapport au champ country, et ne stockera pas une modification qui ne passe pas le contrôle avec succès. Le réplica à fidélité faible joue le rôle de source et envoie un élément avec « USA » comme valeur de country. Le fournisseur de destination essaie d'appliquer la modification au réplica à fidélité élevée, mais sur ce dernier, le champ state/province de l'élément contient « Colombie britannique ». Par conséquent, la modification ne respecte pas la logique métier et provoque un conflit de contraintes sur l'unité de modification qui représente le champ state/province.

Lorsque le fournisseur de destination utilise cette méthode pour signaler un conflit de contraintes, l'applicateur de modifications résout le conflit en fonction de l'action de résolution de conflit définie par l'application pour le conflit spécifié. L'applicateur de modifications distribue ensuite tous les appels nécessaires au fournisseur de destination afin que celui-ci puisse appliquer le conflit résolu au réplica de destination. Pour plus d'informations, consultez Détection et résolution des conflits de contraintes.

Voir aussi

Autres ressources

Interface ISaveChangeWithChangeUnitsContext2