HOW TO
GIS-Administratoren und -Manager haben mitunter die Aufgabe, die Server- und Datenbankeigenschaften von Layern in MXD-Dateien mithilfe eines automatisierten Verfahrens feststellen. In den folgenden Anweisungen wird beschrieben, wie dies mit einem Python-Skript möglich ist.
Das folgende Python-Skript veranschaulicht, wie Datenbank- und Servereigenschaften für Layer und Tabellen in einer MXD-Datei extrahiert werden.
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 "Table:{0},Server: {1}".format(table.name,cp.server) except: print "No server listed for table: {0}".format(table.name) try: print "Table:{0},Database: {1}".format(table.name,cp.database) except: print "No database listed for table: {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 "Layer:{0},Server: {1}".format(layer.name,cp.server) except: print "No server listed for layer: {0}".format(layer.name) try: print "Layer:{0},Database: {1}".format(layer.name,cp.database) except: print "No database listed for layer {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)
Artikel-ID: 000011781
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen
You can also download the app to access the chatbot anytime! Download it now.