Listando conexões sde com arcpy
by Carlos Nantes
Recentemente, precisei programar um add-in para o Arcmap que deveria listar as conexões de banco de dados usando a API do Arcpy criada pela ESRI. Porém, não havia uma função pronta para realizar isso. Elaborei o snippet abaixo para efetuar essa tarefa e estou disponibilizando aqui para futuras referências.
import os
def listSdeConnections():
appdata = os.getenv(u'APPDATA')
version = arcpy.GetInstallInfo()[u'Version']
arcCatalogPath = os.path.join(appdata ,u'ESRI',u'Desktop'+version,u'ArcCatalog')
# i.e.: C:\Users\username\AppData\Roaming\ESRI\Desktop10.7\ArcCatalog
sdeConnections = []
for file in os.listdir(arcCatalogPath):
fileIsSdeConnection = file.lower().endswith(u'.sde')
if fileIsSdeConnection and u'ArcCatalog' in arcCatalogPath:
dbConnectionPath = u'Database Connections' + arcCatalogPath.split(u'ArcCatalog')[1]
# i.e.: Database Connections\Production.sde
sdeConnections.append(os.path.join(dbConnectionPath, file))
return sdeConnections
Para ver o exemplo funcionando basta abrir o interpretador python do Arcmap, colar esse snippet e executá-lo. O resultado vai depender da sua configuração do arcmap mas será algo do tipo:
>> listSdeConnections()
[
u'Database Connections\\Homologacao.sde',
u'Database Connections\\HomologacaoSDE.sde',
u'Database Connections\\Producao.sde',
u'Database Connections\\ProducaoSDE.sde'
]