HOW TO

Extrahieren von Server- und Datenbankeigenschaften von Layern in einer MXD-Datei

Last Published: April 25, 2020

Zusammenfassung

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.

Vorgehensweise

Das folgende Python-Skript veranschaulicht, wie Datenbank- und Servereigenschaften für Layer und Tabellen in einer MXD-Datei extrahiert werden.

  1. Ändern Sie den folgenden Parameter dahingehend, dass er auf eine MXD-Datei verweist:
mxd_source = r"C:\DATA\test_name.mxd"
  1. Führen Sie das folgende Skript aus.
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

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Weitere Informationen zu diesem Thema erkunden