操作方法

操作方法:从 MXD 文件的图层中提取服务器和数据库属性

Last Published: April 25, 2020

摘要

GIS 管理员和管理人员有时需要以自动方式确定 .mxd 文件中图层的服务器和数据库属性。 提供的说明将介绍如何使用 Python 脚本来执行此操作。

过程

以下 Python 脚本演示了如何为 .mxd 文件中的图层和表提取数据库和服务器属性。

  1. 修改以下参数以指向 .mxd 文件:
mxd_source = r"C:\DATA\test_name.mxd"
  1. 运行以下脚本。
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)

文章 ID:000011781

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

发现关于本主题的更多内容