Compartilhar via


ISaveChangeWithChangeUnitsContext2::SetConstraintConflictOnChangeUnit

Relata que ocorreu um conflito de restrição quando o provedor de destino tentou aplicar a alteração à réplica de destino, para uma alteração que contém unidades de alteração.

HRESULT SetConstraintConflictOnChangeUnit(
  ISyncChangeUnit * pChangeUnit);

Parâmetros

  • pChangeUnit
    [in] A unidade de alteração na réplica de destino que está em conflito com a unidade de alteração a ser aplicada.

Valor de retorno

  • S_OK.

  • E_INVALIDARG quandopChangeUnit não for encontrado na alteração a ser aplicada.

  • E_POINTER.

  • SYNC_E_INVALID_OPERATION se um conflito de restrição ou um erro recuperável já tiver sido definido nesse objeto.

Comentários

Um conflito de restrição ocorre quando um provedor de destino tenta aplicar uma alteração na réplica de destino, e essa alteração viola uma restrição da réplica de destino. Para unidades de alteração, normalmente, isso significa que a alteração viola algumas lógicas de negócios na réplica de destino. Como exemplo de um conflito de lógica corporativa, considere uma réplica de baixa-fidelidade que armazene duas unidades de alteração: name e country. Considere também uma réplica de baixa fidelidade que armazene três unidades de alteração: name, state/province e country. A réplica de alta fidelidade contém lógica corporativa que verifica o campo state/province em relação ao campo country e não armazenará uma alteração que não seja aprovada na verificação. A réplica da baixa fidelidade age como a origem e envia um item com country definido como "EUA". O provedor de destino tenta aplicar a alteração à réplica de alta fidelidade, porém, nessa réplica, o item contém "Columbia Britânica" em seu campo state/province. Portanto, a alteração viola a lógica de negócios e causa um conflito de restrição na unidade de alteração que representa o campo state/province.

Quando o provedor de destino usa esse método para relatar um conflito de restrição, o aplicador de alterações resolve o conflito de acordo com a ação de resolução de conflitos definida pelo aplicativo para o conflito especificado. O aplicador de alterações então despacha as chamadas necessárias para o provedor de destino, para que este possa aplicar o conflito resolvido à réplica de destino. Para obter mais informações, consulte Detectando e solucionando conflitos de restrição.

Consulte também

Referência

Interface ISaveChangeWithChangeUnitsContext2