CÓMO

Extraer propiedades de servidores y bases de datos de las capas de un archivo MXD

Last Published: April 25, 2020

Resumen

Los administradores y los administradores de SIG a veces deben determinar las propiedades de servidores y bases de datos de las capas de archivos .mxd de forma automática. Las instrucciones proporcionadas describen cómo hacerlo mediante un script de Python.

Procedimiento

El siguiente script de Python muestra cómo extraer propiedades de bases de datos y servidores de las capas y tablas de un archivo .mxd.

  1. Modifique el siguiente parámetro para que apunte a un archivo .mxd:
mxd_source = r"C:\DATA\test_name.mxd"
  1. Ejecute el siguiente script.
import arcpy, os, string

def FindConnPropTbl(mxd_source):
    mxd = arcpy.mapping.MapDocument(mxd_source)
    for df in arcpy.mapping.ListDataFrames(mxd):
        tableList = arcpy.mapping.ListTableViews(mxd, "", df)
        for table in tableList:
            dsource = str(table.dataSource)
            fnd = dsource.find('.sde')
            sub_str = dsource[:fnd +4]
            desc = arcpy.Describe(sub_str)
            cp = desc.connectionProperties
 try:
                print "Tabla:{0},Servidor: {1}".format(table.name,cp.server)
 except:
                print "No hay ningún servidor en la lista para la tabla: {0}".format(table.name)
 try:
                print "Table:{0},Database: {1}".format(table.name,cp.database)
 except:
                print "No hay ninguna base de datos en la lista para la tabla: {0}".format(table.name)
            del table,dsource,fnd,cp,sub_str,desc
    del mxd,df,tableList

def FindConnPropFc(mxd_source):
    mxd = arcpy.mapping.MapDocument(mxd_source)
    for df in arcpy.mapping.ListDataFrames(mxd):
        layerList = arcpy.mapping.ListLayers(mxd, "", df)
        for layer in layerList:
            dsource = str(layer.dataSource)
            fnd = dsource.find('.sde')
            sub_str = dsource[:fnd +4]
            desc = arcpy.Describe(sub_str)
            cp = desc.connectionProperties
 try:
                print "Capa:{0},Servidor: {1}".format(layer.name,cp.server)
 except:
                print "No hay ningún servidor en la lista para la capa: {0}".format(layer.name)
 try:
                print "Layer:{0},Database: {1}".format(layer.name,cp.database)
 except:
                print "No hay ninguna base de datos en la lista para la capa {0}".format(layer.name)
            del layer,dsource,fnd,cp,sub_str,desc
    del mxd,df,layerList

if __name__=="__main__":
    mxd_source = r"C:\DATA\test_name.mxd"
    FindConnPropTbl(mxd_source)
    FindConnPropFc(mxd_source)

Id. de artículo:000011781

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Descubrir más sobre este tema