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

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln