4D v16.3

DELETE SELECTION

ホーム

 
4D v16.3
DELETE SELECTION

DELETE SELECTION 


 

DELETE SELECTION {( aTable )} 
引数   説明
aTable  テーブル in カレントセレクションを削除するテーブル, または 省略時、デフォルトテーブル

説明   

DELETE SELECTIONは、aTableのカレントセレクションのレコードを削除します。カレントセレクションが空の場合、DELETE SELECTIONは何も行いません。レコードが削除された後、カレントセレクションは空になります。トランザクション処理中に削除されたレコードは、トランザクション処理が実行または取り消されるまで、他のユーザや他のプロセスに対してロックされます。

警告: レコードの削除は、恒久的な操作です。削除が実行されると元に戻すことはできません。

テーブルインスペクターの「レコードを完全に削除」オプションの選択を解除すると、DELETE SELECTION使用時のレコード削除処理を高速にすることができます (4Dデザインリファレンスマニュアルのレコードを完全に削除参照)。

以下の例は[People]テーブルのすべてのレコードを表示します。ユーザはこの中から削除したいものを選択します。この例には2つのメソッドがあります。第1のメソッドはレコードを表示します。第2は削除ボタンのオブジェクトメソッドです。以下は、第1のメソッドです:

 ALL RECORDS([People]` 全レコードをセレクションに
 FORM SET OUTPUT([People];"Listing") ` レコードを一覧するフォームを設定
 DISPLAY SELECTION([People]` 全レコードを表示

次に示すのは削除ボタンのオブジェクトメソッドです。このボタンは出力フォームのフッタエリアにあります。このオブジェクトメソッドでは、セレクションを削除するために、ユーザが選択したレコード (UserSet) を使用します。ユーザがレコードを1件も選択しなかった場合、DELETE SELECTIONは何も行わないという点に注目してください。

  ` 本当にレコードを削除するか確認する
 CONFIRM("You selected "+String(Records in set("UserSet"))+" people to delete."
 +Char(13)+"Click OK to Delete them.")
 If(OK=1)
    USE SET("UserSet") ` ユーザが選択したレコードを使用
    DELETE SELECTION([People]` レコードセレクションを削除
 End if
 ALL RECORDS([People]` すべてのレコードを選択

DELETE SELECTIONの実行中にロックされたレコードが見つかると、そのレコードは削除されません。ロックされたレコードはすべて"LockedSet"というセットに納められます。DELETE SELECTIONの実行後、"LockedSet"を調べて、ロックされているレコードが存在していたかどうかを知ることができます。次はループを使用してすべてのレコードを削除します:

 Repeat ` ロックされたレコードがある限り繰り返す
    DELETE SELECTION([ThisTable])
    $lockedRecords:=Records in set("LockedSet")
    If($lockedRecords#0) ` ロックされたレコードがあれば
       USE SET("LockedSet") ` ロックされたレコードのみをセレクションにする
    End if
 Until($lockedRecords=0) ` ロックされたレコードがなくなるまで



参照 

DISPLAY SELECTION
MODIFY SELECTION
TRUNCATE TABLE
セット
レコードのロック

 
プロパティ 

プロダクト: 4D
テーマ: セレクション
番号: 66

このコマンドはLockedSetシステムセットを更新しますこのコマンドはカレントセレクションを変更しますThis command can be run in preemptive processes

 
履歴 

初出: < 4D v6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)