DELETE SUBRECORD

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11 (Modified)


DELETE SUBRECORD (subtable)

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

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

説明

DELETE SUBRECORDsubtableのカレントサブレコードを削除します。カレントサブレコードがない場合、DELETE SUBRECORDはその効力を発揮しません。サブレコードが削除されると、subtableのカレントサブセレクションは空になります。従って、サブセレクションをスキャンして選択したサブレコードを削除する用途でDELETE SUBRECORDを使用することはできません。

親のレコードが保存されるまで、サブレコードの削除は永続的ではありません。親のレコードを削除すると、すべてのサブレコードは自動的に削除されます。

サブセレクションを削除するには、削除したいサブセレクションを作成し、最初のサブレコードを削除します。再度、サブセレクションを作成し、最初のサブレコードを削除します。この作業を繰り返します。

例題

1. 一つのサブテーブルのすべてのサブレコードを削除する例を以下に表します。

   ALL SUBRECORDS([People]Children) 
   While (Records in subselection([People]Children)>0) 
      DELETE SUBRECORD([People]Children) 
      ALL SUBRECORDS([People]Children)
   End while

2. 子どもの年齢が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

参照

ALL SUBRECORDS, QUERY SUBRECORDS, Records in subselection, SAVE RECORD.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次