1 导出不同版本的数据变化
/// <summary>
/// 导出不同版本的数据变化
/// </summary>
/// <param name="iSRC"></param>
/// <param name="iTrg"></param>
public void ExportVersionChanges(IWorkspaceName iSRC, IWorkspaceName iTrg)
{
IVersionDataChangesInit iVInit = new VersionDataChangesClass();
try
{
iVInit.Init(iSRC, iTrg);
}
catch (System.Exception ex)
{
}
IExportDataChanges iEDC = new DataChangesExporter();
esriExportDataChangesOption exOption = esriExportDataChangesOption.esriExportToXML;
try
{
iEDC.ExportDataChanges(@"D:\\versiondiff.xml", exOption, iVInit as IDataChanges, false);
}
catch (System.Exception ex)
{
}
}
2 导出不同表的数据变化
/// <summary>
/// 导出不同表的数据变化
/// </summary>
/// <param name="iInserts"></param>
/// <param name="iUpdates"></param>
/// <param name="iDeletes"></param>
public void ExportTableChanges(ITable iInserts, ITable iUpdates, IStringArray iDeletes)
{
ITablesDataChanges iTDCs = new TablesDataChangesClass();
try
{
ITableDataChangesInfo iTDC = new TableDataChangesInfoClass();
iTDC.Init("Parcle", iInserts, iUpdates, null);
iTDC.SetDeletedIDs(null,iDeletes);
iTDCs.Add(iTDC);
iTDC.Init("Parcel", iInserts, iUpdates, null);
}
catch (System.Exception ex)
{
}
IExportDataChanges iEDC = new DataChangesExporterClass();
try
{
iEDC.ExportDataChanges(@"D:\tableDiffs.xml",esriExportDataChangesOption.esriExportToXML,iTDCs as IDataChanges,false);
}
catch (System.Exception ex)
{
}
}
3 导入变化信息
/// <summary>
/// 导入变化信息
/// </summary>
/// <param name="iReplicaWorkspaceName"></param>
public void ImportChanges(IWorkspaceName iReplicaWorkspaceName)
{
IDeltaDataChangesInit iInit = new DeltaDataChangesClass();
try
{
iInit.Init(@"D:\diff.xml", esriExportDataChangesOption.esriExportToXML);
}
catch (System.Exception ex)
{
}
IImportDataChanges3 iIMportDC = new DataChangesImporterClass() as IImportDataChanges3;
try
{
bool conflicts = iIMportDC.ImportDataChanges3(iReplicaWorkspaceName, iInit as IDataChanges, true, esriReplicaReconcilePolicyType.esriReplicaDetectConflicts, true, true, true);
}
catch (System.Exception ex)
{
}
}