我有一些从ArcMap项目中启动的Python代码。用户可能已经在项目中创建的所有联接都必须删除,以便我的代码运行。不幸的是,删除联接的代码…arcpy.RemoveJoin_management(“ layer1”,“ layer2”)…也破坏了一些对我的应用程序至关重要的图层属性(突出显示的字段,只读字段等)。
如果通过右键单击ArcMap中的图层并选择“删除连接”来删除连接,则图层属性将保持不变。
如果我可以从代码中检测到联接,则只需退出代码并显示一条消息,用户必须在尝试运行代码之前手动删除其联接。因此...可以通过编程方式检测到联接吗?
我对如何通过arcpy执行RemoveJoin引起问题有些迷惑。如何破坏只读字段?此外,在ArcMap中使用“删除联接”工具是否会导致相同的问题?
—
纳撒努斯2011年
解决这个问题的另一种方法是使您的python代码对连接不敏感?
—
Dan S.
@ Nathanus-ArcMap中的手动删除连接不会破坏图层属性,GP工具会破坏。这是ESRI帮助的相关引文:“由于这些工具执行实际的幕后联接处理的方式与“联接数据”对话框略有不同,因此,如果该对话框上的联接功能遇到任何意外问题,请使用这些工具。 ”
—
BrianPeasley 2011年
@ Dan S.-我在代码中使用了插入光标等。我不知道如何使我的代码对联接不敏感。
—
BrianPeasley 2011年
好吧,值得一问。;)forums.esri.com/Thread.asp?c=93&f=1729&t=293173似乎暗示您可以通过在表名前添加列名来更新连接表中的值。也许它也可以跨插入工作吗?
—
Dan S.