データ マクロを使用してクロージャ テーブルを更新しようとしています。これには、新しいレコードがメイン テーブルに挿入されるたびに次のコードを実行する必要があります。
INSERT INTO tblClosure (parent_id, child_id, depth)
SELECT p.parent_id, c.child_id, p.depth+c.depth+1
FROM tblClosure AS p, tblClosure AS c
WHERE p.child_id=$PARENT_ID and c.parent_id=$CHILD_ID;
ご覧のとおり、ネストされたループを使用してこの操作を実行できます。
Iterate through tblClosure
For each record p with child_id = $PARENT_ID {
Iterate through tblClosure
For each record c with parent_id = $CHILD_ID {
Insert (p.parent_id, c.child_id, p.depth + c.depth + 1) into tblClosure
}
}
メイン テーブル (tblNodes) とクロージャ テーブル (tblClosure) の両方がバックエンド データベースに格納されているため、データ マクロで必要なことを実行できるはずです。
データ マクロには、関数Create Record (in...)およびFor Each Record (in...)もあるようです。しかし、私はその2番目のものをまったく発火させることができません。
これは私のコードです(パラメータとしてtemp_node
andを定義しました):temp_parent