Mehr

Verteilte Geodatabase ExportDataChangeMessage

Verteilte Geodatabase ExportDataChangeMessage


So führen Sie ExportDataChangeMessage durch. Ich bekomme nicht hin, wo ich in_replica bekomme. Mein Code ist:

Geoprozessor GP = neuer Geoprozessor(); GP.SetEnvironmentValue("Arbeitsbereich", Ausgabepfad1); GP.OverwriteOutput = true; ESRI.ArcGIS.DataManagementTools.ExportDataChangeMessage exportdataChange = new ESRI.ArcGIS.DataManagementTools.ExportDataChangeMessage(); exportdataChange.in_geodatabase = pathofrelicated mdb-Datei; exportdataChange.in_replica = "SubJob_309227531_Jp"; exportdataChange.out_data_changes_file = beliebige MDB; exportdataChange.switch_to_receiver = "SCHALTER"; exportdataChange.include_unacknowledged_changes = "UNACKNOWLEDGED"; exportdataChange.include_new_changes = "NEW_CHANGES"; GP.Execute(exportdataChange, null);

Gib mir einen Fehler

FEHLER 000286: Beim Ausführen von ExportReplicaSchema ist ein Fehler aufgetreten.


Endlich habe ich die Lösung gefunden, dass ich beim Exportieren der Datenänderung nicht den richtigen Replikatnamen erhalten habe. Hier ist mein vollständiger Code:->

String filename="E:Osgb ProjectTestSubJob_3089559_10_R10GPMS_308955910_Extract.mdb" IGeoDataServer geoDataServer = new GeoDataServerClass(); IGeoDataServerInit geoDataServerInit = (IGeoDataServerInit)geoDataServer; geoDataServerInit.InitFromFile(Dateiname); String currentReplicaName=string.Empty; IGPReplicas gpReplicas = geoDataServer.Replicas; for (int i = 0; i < gpReplicas.Count; i++) { IGPReplica currentReplica = gpReplicas.get_Element(i); currentReplicaName = currentReplica.Name; } string dd = System.IO.Path.GetFileName(Dateiname); string filenameWIthExtension = System.IO.Path.GetFileNameWithoutExtension(filename); Zeichenfolgenverzeichnis = System.IO.Path.GetDirectoryName(Dateiname); string outPutFileName = filenameWIthExtension + "_Delta.mdb"; string Ausgabepfad1 = Verzeichnis; string Ausgabepfad = Verzeichnis + "" + outPutFileName; Geoprozessor GP = neuer Geoprozessor(); GP.SetEnvironmentValue("Arbeitsbereich", Ausgabepfad1); GP.OverwriteOutput = true; GP.RegisterGeoProcessorEvents(gpEventHandler); ESRI.ArcGIS.DataManagementTools.ExportDataChangeMessage exportdataChange = new ESRI.ArcGIS.DataManagementTools.ExportDataChangeMessage(); exportdataChange.in_geodatabase = Dateiname; exportdataChange.in_replica = currentReplicaName; exportdataChange.out_data_changes_file = Ausgabepfad; exportdataChange.switch_to_receiver = "SCHALTER"; exportdataChange.include_unacknowledged_changes = "UNACKNOWLEDGED"; exportdataChange.include_new_changes = "NEW_CHANGES"; IGeoProcessorResult2 Ergebnis; result = (IGeoProcessorResult2)GP.Execute(exportdataChange, null); while (result.Status != esriJobStatus.esriJobSucceeded) { Console.WriteLine(result.Status.ToString()); System.Threading.Thread.Sleep(100); } // Wenn der Job erfolgreich war, rufen Sie das Feature-Ergebnis ab. if (result.Status == esriJobStatus.esriJobSucceeded) { int i= result.MessageCount; MessageBox.Show("Erfolgreich abgeschlossen…"); } if (result.Status == esriJobStatus.esriJobFailed) { string ss = result.Status.ToString(); }

Schau das Video: Shapefile vs geodatabase