4D v14.3DELETE SUBRECORD |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
DELETE SUBRECORD
|
DELETE SUBRECORD ( subtable ) | ||||||||
引数 | 型 | 説明 | ||||||
subtable | サブテーブル |
![]() |
カレントサブレコードを削除するサブテーブル | |||||
バージョン11以降の4Dはサブテーブルをサポートしていません。互換性メカニズムは、変換されたデータベースでコマンドの機能を保護しますが、すべてのサブテーブルをリレートする標準的なテーブルに取り換えることを強くお勧めします。
DELETE SUBRECORDはsubtableのカレントサブレコードを削除します。カレントサブレコードがない場合、DELETE SUBRECORDはその効力を発揮しません。サブレコードが削除されると、subtableのカレントサブセレクションは空になります。従って、サブセレクションをスキャンして選択したサブレコードを削除する用途でDELETE SUBRECORDを使用することはできません。
親のレコードが保存されるまで、サブレコードの削除は永続的ではありません。親のレコードを削除すると、すべてのサブレコードは自動的に削除されます。
サブセレクションを削除するには、削除したいサブセレクションを作成し、最初のサブレコードを削除します。再度、サブセレクションを作成し、最初のサブレコードを削除します。この作業を繰り返します。
一つのサブテーブルのすべてのサブレコードを削除する例を以下に表します。
ALL SUBRECORDS([People]Children)
While(Records in subselection([People]Children)>0)
DELETE SUBRECORD([People]Children)
ALL SUBRECORDS([People]Children)
End while
子どもの年齢が12歳以上のサブレコードを[People]Childrenサブテーブルから削除する例を以下に表します。
ALL RECORDS([People]) `すべてのレコードを選択します。
For($vlRecord;1;Records in selection([People])) `テーブルのすべてのレコード用
`条件付きサブレコードを持つすべてのレコードをクエリする
QUERY SUBRECORDS([People]Children;[People]Children'Age>=12)
`すべてのサブレコードがなくなるまでクエリを繰り返す
While(Records in subselection([People]Children)>0)
`サブレコードを削除する
DELETE SUBRECORD([People]Children)
`再度クエリする
QUERY SUBRECORDS([People]Children;[People]Children'Age>=12)
End while
SAVE RECORD([People]) `親のレコードを保存する
NEXT RECORD([People])
End for
プロダクト: 4D
テーマ: サブレコード
番号:
96
変更: 4D v11 SQL
ALL SUBRECORDS
QUERY SUBRECORDS
Records in subselection
SAVE RECORD
ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v11 SQL Release 6)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)