4D v14.3

DELETE SUBRECORD

ホーム

 
4D v14.3
DELETE SUBRECORD

DELETE SUBRECORD 


 

DELETE SUBRECORD ( subtable ) 
引数   説明
subtable  サブテーブル in カレントサブレコードを削除するサブテーブル

バージョン11以降の4Dはサブテーブルをサポートしていません。互換性メカニズムは、変換されたデータベースでコマンドの機能を保護しますが、すべてのサブテーブルをリレートする標準的なテーブルに取り換えることを強くお勧めします。

説明  

DELETE SUBRECORDsubtableのカレントサブレコードを削除します。カレントサブレコードがない場合、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

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v11 SQL Release 6)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)