Lorsque j'essaie de supprimer une classe d'entités, après ou pendant l'utilisation d'une application de moteur Arcgis qui utilise la même classe d'entités, j'ai une erreur concernant le verrou, donc je ne peux pas me débarrasser de ce verrou avant de redémarrer l'ordinateur.
j'aimerais savoir comment supprimer les verrous à l'aide d'arcpy ou d'arcobjects 10.1, ce serait parfait si je peux me débarrasser de la serrure à l'intérieur de l'application arcengine qui verrouille également la géodatabase, j'ai vu différents articles en SE sur les verrous mais personne d'entre eux donne la solution pour libérer les verrous à l'aide d'ArcObjects.
arcobjects
arcpy
arcgis-10.1
arcgis-engine
.net
geogeek
la source
la source
Réponses:
Si vous utilisez les scripts Arcpy, les problèmes de verrouillage des données sont devenus encore plus problématiques avec 10.1.
Eh bien, c'est ainsi que cela devrait fonctionner, mais c'est rarement le cas. Habituellement, un code fonctionnera occasionnellement, mais plantera souvent de manière inexplicable à différents endroits.
Le problème semble être que les verrous sont juste laissés assis là «pendant un certain temps», mais le code s'exécute beaucoup plus rapidement que la vitesse à laquelle les verrous sont retirés. Cependant, certains des outils Arc intégrés semblent forcer la suppression des verrous à la demande (car les verrous s'appliquent à des GDB entiers en même temps, un verrou vous empêchera de travailler avec l'une des classes d'entités contenues). Ces outils sont arcpy.Compact_management () et arcpy.Exists ().
Voici une petite fonction que j'utilise dans mon code qui a considérablement augmenté la fiabilité (pour un script qui crée et édite plusieurs GDB et classes d'entités en leur sein):
Il est utilisé en passant simplement le chemin de l'espace de travail (GDB) à la fonction, et doit être effectué après chaque opération sur l'espace de travail (par exemple, création de GDB) ou sur les classes d'entités dans l'espace de travail (par exemple, curseurs, ajout de champs, calculs, etc.) . Par exemple (affiché ici en tant que script autonome, avec la fonction en haut; pour utiliser la fonction, copiez-la et collez-la entre les importations et le programme réel, comme indiqué ici):
la source
Une géodatabase fichier possède 3 types de verrous.
La solution proposée par @StacyR fonctionnera dans toutes les situations à l'exception des verrous d'édition exclusifs (ED) selon la documentation d'aide d'arcgis.
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//003n0000007t000000
la source
Si les verrous sont créés par votre code, vous ne nettoyez pas après vous-même. Libérez toutes les références aux classes d'objets, espaces de travail, curseurs, etc. Les verrous sont supprimés lorsque vous n'avez plus de références aux objets à verrouiller.
la source