1
임시 테이블 만 포함하고 이후에 관계가 정의되는 데이터 집합을 만들고 싶습니다. 진행 상황에서 동적으로 데이터 집합에 관계 추가 OpenEdge
내가 데이터 세트 모두의 관계를 정의
잘 작동DEF TEMP-TABLE ttParent NO-UNDO
FIELD pKey AS INT
FIELD parentName AS CHAR.
DEF TEMP-TABLE ttChild NO-UNDO
FIELD iParent AS INT XML-NODE-TYPE "HIDDEN"
FIELD childName AS CHAR.
DEF DATASET dsMyDataset
FOR ttParent, ttChild
DATA-RELATION Parent_Child FOR ttParent, ttChild
RELATION-FIELDS(pKey, iParent)
NESTED FOREIGN-KEY-HIDDEN.
CREATE ttParent.
ASSIGN
ttParent.pKey = 1
ttParent.parentName = "Parent".
CREATE ttChild.
ASSIGN
ttChild.iParent = ttParent.pKey
ttChild.childName = "Child".
CREATE ttChild.
ASSIGN
ttChild.iParent = ttParent.pKey
ttChild.childName = "Child2".
DATASET dsMyDataset:WRITE-XML("FILE", "C:/temp/testDs.xml").
이 예상대로 다음과 같은 XML 생성 : 나는 단지 temptables는 데이터 집합에이를 다시 작성하는 경우 이제
<?xml version="1.0"?>
<dsMyDataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ttParent>
<pKey>1</pKey>
<parentName>Parent</parentName>
<ttChild>
<childName>Child</childName>
</ttChild>
<ttChild>
<childName>Child2</childName>
</ttChild>
</ttParent>
</dsMyDataset>
을 정의는 나중에 추가됩니다 :
// Definition of temp-tables same as above
DEF DATASET dsMyDynamicDataset
FOR ttParent, ttChild.
DATASET dsMyDynamicDataset:ADD-RELATION (
BUFFER ttParent:HANDLE, BUFFER ttChild:HANDLE,
"pKey,iParent",
FALSE, TRUE, FALSE, FALSE, TRUE).
// Filling of temp-tables same as above
DATASET dsMyDynamicDataset:WRITE-XML("FILE", "C:/temp/testDs.xml").
나는 위의 결과와 같지만 결과는 다음과 같습니다.
<?xml version="1.0"?>
<dsMyDynamicDataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ttParent>
<pKey>1</pKey>
<parentName>Parent</parentName>
</ttParent>
<ttChild>
<childName>Child</childName>
</ttChild>
<ttChild>
<childName>Child2</childName>
</ttChild>
</dsMyDynamicDataset>