CONSTRAINT_CONFLICT_REASON 列挙体
制約の競合が発生する可能性のある理由を表します。
typedef enum
{
CCR_OTHER,
CCR_COLLISION,
CCR_NOPARENT,
CCR_IDENTITY
} CONSTRAINT_CONFLICT_REASON;
メンバー
項目 |
定義 |
CCR_OTHER |
項目または変更単位が同期先レプリカの他の制約に違反しています。プロバイダーでは、必要に応じて、競合する項目の ID を、競合する項目 ID として指定できます。 |
CCR_COLLISION |
項目は、ストア内の別の項目 (既存の項目と同じ名前の項目など) と競合しているため、保存できません。プロバイダーでは、同期先項目の ID を、競合する項目 ID として指定する必要があります。 |
CCR_NOPARENT |
項目は、階層構造のデータ ストアに存在しない親項目を必要とするため、そのストアに保存できません。プロバイダーでは、必要に応じて、存在しない親項目の ID を、競合する項目 ID として指定できます。 |
CCR_IDENTITY |
同期元レプリカと同期先レプリカでは、項目 ID の扱いが異なります。たとえば、レプリカ X では、id1 および id2 という ID の項目間の衝突競合を解決するために、項目をマージして、マージされた項目に id1 を割り当てます。レプリカ Y では、id1 および id2 という ID の項目間の衝突競合を解決するために、id1 で示される項目の名前を変更して、両方の項目を保持します。レプリカ X は、id1 で示されるマージされた項目と、id2 が id1 にマージされたことを示すマージ廃棄標識を送信します。id1 での競合が検出され、同時実行の競合として解決されます。id2 での競合は、CCR_IDENTITY の競合理由を指定することにより、検出され、ID の競合として同期アプリケーションに報告されます。同期元の変更と同期先の変更のどちらを保持して同期を解決するかは、同期アプリケーションによって決定されます。 |
解説
同期先プロバイダーでは、変更適用元に制約の競合を報告するときに、CONSTRAINT_CONFLICT_REASON のメンバーを使用して制約の競合の原因を指定します。制約の競合の詳細については、「制約の競合の検出および解決」を参照してください。
必要条件
ヘッダー: Synchronization.h