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を作成します
私は、データセットのすべてで関係を定義します。
<?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>
今、私は唯一のtemptablesであるデータセットにこれを書き換えるとき関係は後で追加されます:
// 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>