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 |
对于某个项的标识,源副本和目标副本产生分歧。例如,副本 X 通过将 ID 为 id1 和 id2 的两个项合并,并将 id1 分配给合并后的项,从而解决了二者之间的抵触冲突。副本 Y 通过将 ID 分别为 id1 和 id2 的两个项中由 id1 标识的项进行重命名,并保留这两个项,从而解决了二者之间的抵触冲突。副本 X 发送由 id1 标识的合并项,以及一个指示 id2 已经合并入 id1 的合并删除逻辑。系统会检测到 id1 冲突,并作为并发冲突解决。系统检测到有关 id2 的冲突,然后将其作为标识冲突报告给同步应用程序,并指明 CCR_IDENTITY 冲突原因。同步应用程序确定是通过保留源变更,还是保留目标变更来解决冲突。 |
注释
目标提供程序在向变更应用方报告约束冲突时,使用 CONSTRAINT_CONFLICT_REASON 的一个成员来指定约束冲突的原因。有关约束冲突的详细信息,请参阅检测和解决约束冲突。
要求
头文件:Synchronization.h