ArcMap 프로젝트 내에서 시작되는 Python 코드가 있습니다. 내 코드를 실행하려면 프로젝트에서 사용자가 생성 한 조인을 제거해야합니다. 불행히도 조인을 제거하는 코드… arcpy.RemoveJoin_management ( "layer1", "layer2")… 또한 내 응용 프로그램에 중요한 일부 레이어 속성 (강조 표시 필드, 읽기 전용 필드 등)을 손상시킵니다.
ArcMap에서 레이어를 마우스 오른쪽 버튼으로 클릭하고 "조인 제거"를 선택하여 조인을 제거하면 레이어 속성이 그대로 유지됩니다.
코드 내에서 조인이 있음을 감지 할 수 있으면 코드를 종료하고 코드를 실행하기 전에 사용자가 조인을 수동으로 제거해야한다는 메시지를 표시하기 만하면됩니다. 그렇다면 ... 프로그래밍 방식으로 조인을 감지 할 수 있습니까?
arcpy를 통해 RemoveJoin을 수행하면 문제가 발생하는 방식에 약간 빠져 있습니다. 읽기 전용 필드를 망치는 방법은 무엇입니까? 또한 ArcMap에서 조인 제거 도구를 사용하면 동일한 문제가 발생합니까?
—
Nathanus
어쩌면 이것을 해결하는 다른 방법은 파이썬 코드를 조인에 둔감하게 만드는 것입니까?
—
Dan S.
@ Nathanus-ArcMap에서 Join Join을 수동으로 제거해도 레이어 속성이 손상되지 않습니다. ESRI 도움말의 관련 인용문은 다음과 같습니다. "이 도구는 데이터 조인 대화 상자와 약간 다른 실제 비하인드 조인 처리를 수행하므로 해당 대화 상자의 조인 기능에 예기치 않은 문제가 발생하면 도구를 사용하십시오. "
—
BrianPeasley
@ Dan S.-코드에서 삽입 커서 등을 사용하고 있습니다. 내 코드를 조인에 둔감하게 만드는 방법을 모르겠습니다.
—
BrianPeasley
음, 물어볼 가치가있었습니다. ;) forums.esri.com/Thread.asp?c=93&f=1729&t=293173 은 열 이름 앞에 테이블 이름을 붙여 조인 된 테이블의 값을 업데이트 할 수 있음을 나타냅니다. 아마도 인서트에서도 작동합니까?
—
Dan S.