CÓMO
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.
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.
mxd_source = r"C:\DATA\test_name.mxd"
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
Empieza a chatear ahora