サブテーブルから通常のテーブルへデータを複製する方法
日付 | 2001/11/20 |
---|---|
ID | 01-782 |
バージョン | 6.5.x and 6.7.x |
プラットフォーム | Windows and Mac |
この記事は、最新ではないバージョンに関連した方法について解説しています。
最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。
データベース開発のあるポイントで、サブテーブルのフィールドを使用することをやめて、代わりにリレートテーブルを使用したいと思うかもしれません。このポイントでは、リレートテーブルへのサブテーブルのデータを模写する必要があります。次のコードは、そのような処理をインプリメントしています:
ALL RECORDS([Table_with_Subtable])
For ($i;1;Records in selection([Table_with_Subtable]))
LOAD RECORD([Table_with_Subtable])
ALL SUBRECORDS([Table_with_Subtable]Field3)
For ($j;1;Records in subselection([Table_with_Subtable]Field3))
CREATE RECORD([Target_Table])
`リレートの為にはキーフィールドが必要です
[Target_Table]Field1:=[Table_with_Subtable]Key_Field
`以下は実際のデータ複製処理
[Target_Table]Field2:=[Table_with_Subtable]Field3'Field1
[Target_Table]Field3:=[Table_with_Subtable]Field3'Field2
SAVE RECORD([Target_Table])
NEXT SUBRECORD([Table_with_Subtable]Field3)
End for
UNLOAD RECORD([Table_with_Subtable])
NEXT RECORD([Table_with_Subtable])
End for
上記コードは、オリジナルのテーブルの各レコード毎に、すべてのsubrecordsをループし、複写先テーブルに対応するレコードを作成します。オリジナルのテーブルとのリレートを確立するために同じ値を共有するキーフィールドを割り当てることを忘れないでください。