Regeln für das Arbeiten mit Schemasperren
Bei einem Schema handelt es sich um die Struktur oder das Design einer Datenbank oder eines Datenbankobjekts, beispielsweise einer Feature-Class oder einer Tabelle. Eine Schemasperre besagt, dass eine andere Anwendung auf die Datenbank zugreift und Sie die Struktur durch Hinzufügen oder Entfernen von Feldern nicht ändern dürfen. Der häufigste Grund einer Schemasperre ist das Anzeigen eines Datasets in ArcMap.
Es gibt vier Regeln, die das Verhalten von Geoverarbeitungswerkzeugen und -skripten zusammenfassen, wenn mit Daten gearbeitet wird, auf die andere Anwendungen gleichzeitig zugreifen können.
- Mit Werkzeugen können stets neue Daten in einem Ausgabe-Workspace erstellt werden, auch wenn der Ausgabe-Workspace eine Schemasperre aufweist. Eine entsprechendes Beispiel ist das Erstellen einer Feature-Class in einem Feature-Dataset mit dem Werkzeug Feature-Class erstellen in ArcCatalog, während ArcMap auf das Feature-Dataset zugreift.
- Werkzeuge, die das Schema eines Datasets aktualisieren, beachten stets Sperren, die von anderen ArcGIS-Anwendungen aktiviert werden, die auf das Dataset zugreifen. Beispiel: Wenn eine Feature-Class für Straßen in einer ArcMap-Sitzung angezeigt wird und das Werkzeug Feld hinzufügen in einer anderen ArcMap-Sitzung mit der Feature-Class für dieselben Straßen als Eingabe ausgeführt wird, tritt ein Fehler auf. Das Werkzeug wird mit der Fehlermeldung abgebrochen, dass ein andere Benutzer auf die Daten zugreift.
- Skripte aktualisieren gegebenenfalls stets das Schema von Daten, die von Werkzeugen im selben Skript erstellt werden, auch wenn der aktuelle Workspace von einer anderen Anwendung verwendet wird. Beispiel: Ein Skriptwerkzeug kann eine Feature-Class in einer Personal-Geodatabase erstellen, auf die durch ihre aufrufende Anwendung zugegriffen wird, z. B. ArcMap. In der Regel lassen Personal-Geodatabases keine Schema-Änderungen an einem Dataset durch einen anderen Prozess zu, nachdem dieses geöffnet wurde. Das Skriptwerkzeug kann jedoch die Schema-Änderung an der zuvor erstellten Feature-Class durchführen.
- Skripte und Skriptwerkzeuge können das Schema von Daten nicht ändern, auf die eine andere Anwendung oder ein anderes Skript zugreift. Dies gilt auch für Daten, die von einer Anwendung wie ArcMap an ein Skriptwerkzeug übergeben werden, sodass ein Skriptwerkzeug einem Layer, der als Parameter an das Skript übergeben wurde, kein Feld hinzufügen bzw. aus diesem kein Feld entfernen kann.
7/10/2012