Quando tento excluir uma classe de recurso, após ou durante o uso de um aplicativo de mecanismo Arcgis que usa a mesma classe de recurso, recebo um erro referente ao bloqueio, por isso não posso usar esse bloqueio até reiniciar o computador.
Eu gostaria de saber uma maneira de remover bloqueios usando o arcpy ou arcobjects 10.1, seria perfeito se eu pudesse usar o bloqueio dentro do aplicativo arcengine, que também bloqueia o banco de dados geográficos, eu vi posts diferentes no SE sobre bloqueios, mas ninguém deles fornece a solução para liberar bloqueios usando o ArcObjects.
arcobjects
arcpy
arcgis-10.1
arcgis-engine
.net
geogeek
fonte
fonte
Respostas:
Se você estiver usando scripts do Arcpy, os problemas de bloqueio de dados se tornam ainda mais problemáticos com a 10.1.
Bem, é assim que deve funcionar, mas raramente funciona. Geralmente, um código funciona ocasionalmente, mas geralmente falha inexplicavelmente em lugares diferentes.
O problema parece ser que os bloqueios são deixados ali "por um tempo", mas o código é executado muito mais rápido que a velocidade na qual os bloqueios são removidos. No entanto, algumas das ferramentas incorporadas do Arc parecem forçar os bloqueios a serem limpos sob demanda (como os bloqueios se aplicam a GDBs inteiros de uma só vez, um bloqueio impedirá que você trabalhe com qualquer uma das Classes de recursos contidas). Essas ferramentas são arcpy.Compact_management () e arcpy.Exists ().
Aqui está uma pequena função que eu uso no meu código que aumentou drasticamente a confiabilidade (para um script que cria e edita vários GDBs e classes de recursos dentro deles):
É usado simplesmente passando o caminho do espaço de trabalho (GDB) para a função e deve ser feito após todas as operações no espaço de trabalho (por exemplo, criação do GDB) ou nas Classes de recursos dentro do espaço de trabalho (por exemplo, cursores, adição de campos, cálculos etc.) . Por exemplo (mostrado aqui como um script independente, com a função na parte superior; para usar a função, copie-a e cole-a entre as importações e o programa real, como mostrado aqui):
fonte
Um geodatabase de arquivo possui 3 tipos de bloqueios.
A solução proposta pelo @StacyR funcionará em todas as situações, exceto nos bloqueios de edição exclusivos (ED), de acordo com a documentação de ajuda do arcgis.
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//003n0000007t000000
fonte
Se os bloqueios estiverem sendo criados pelo seu código, você não estará limpando a si mesmo. Libere todas as referências a classes de recursos, áreas de trabalho, cursores etc. Os bloqueios serão removidos quando você não tiver mais referências aos objetos que estão sendo bloqueados.
fonte