/// <summary> /// Exports or imports the version edits as XML files. /// </summary> /// <param name="args">The arguments.</param> internal void Run(ProgramArguments args) { using (EsriRuntimeAuthorization lic = new EsriRuntimeAuthorization(ProductCode.EngineOrDesktop)) { if (lic.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard)) { var workspace = WorkspaceFactories.Open(Path.GetFullPath(args.ConnectionFile)); var versionedWorkspace = (IVersionedWorkspace)workspace; switch (args.Task) { case ProgramTask.Import: var version = versionedWorkspace.DefaultVersion.CreateVersion(args.VersionName); var workspaceName = (IWorkspaceName)((IDataset)version).FullName; string changesFileName = Path.GetFullPath(args.Path); IDeltaDataChangesInit2 ddci = new DeltaDataChangesClass(); ddci.Init2(changesFileName, esriExportDataChangesOption.esriExportToXML, false); IImportDataChanges idc = new DataChangesImporterClass(); idc.ImportDataChanges(workspaceName, (IDeltaDataChanges)ddci, true, true); break; case ProgramTask.Export: var source = versionedWorkspace.FindVersion(args.VersionName); var target = source.GetParent(); IWorkspaceName wsNameSource = (IWorkspaceName)((IDataset)source).FullName; IWorkspaceName wsNameTarget = (IWorkspaceName)((IDataset)target).FullName; var exportFileName = Path.Combine(Path.GetFullPath(args.Path), args.VersionName + ".xml"); IVersionDataChangesInit vdci = new VersionDataChangesClass(); vdci.Init(wsNameSource, wsNameTarget); IExportDataChanges2 edc = new DataChangesExporterClass(); edc.ExportDataChanges(exportFileName, esriExportDataChangesOption.esriExportToXML, (IDataChanges)vdci, true); break; } } } }
private void btnSelectDelta_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog { Filter = "*.mdb|*.mdb|*.xml|*.xml", Multiselect = false }; if (dialog.ShowDialog() == DialogResult.OK) { this.bool_0 = false; this.lblCheckOutName.Text = ""; this.txtDelta.Text = ""; string fileName = dialog.FileName; esriExportDataChangesOption esriExportToAccess = esriExportDataChangesOption.esriExportToAccess; if (dialog.FilterIndex == 2) { esriExportToAccess = esriExportDataChangesOption.esriExportToXML; } IDeltaDataChangesInit init = new DeltaDataChangesClass(); try { init.Init(fileName, esriExportToAccess); IDeltaDataChanges changes = init as IDeltaDataChanges; this.txtDelta.Text = fileName; this.txtDelta.Tag = changes.Container; IDataChanges changes2 = init as IDataChanges; if (changes2.ParentWorkspaceName != null) { IWorkspace workspace = (changes2.ParentWorkspaceName as IName).Open() as IWorkspace; IReplica replica = (workspace as IWorkspaceReplicas).get_ReplicaByID(changes2.ParentReplicaID); if (replica != null) { this.lblCheckOutName.Text = replica.Name; this.bool_0 = true; } } } catch (Exception) { MessageBox.Show("检入空间中没有检出数据或检出数据无效!"); } } }