7.33.3 DELETE の使用例

例1:フィールド#ORDNUMに指定された注文を注文頭書きファイルから削除します。

DELETE FROM_FILE(ORDHDR) WITH_KEY(#ORDNUM)
 

例2:ORDLINという明細行ファイルから明細行番号1、明細行番号2の順に削除します。受注番号は、#ORDNUMというファイルに保持されています。

DELETE FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM 1)
DELETE FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM 2)
 

数値リテラル1および2をキー値として使用していることに注意してください。

上記の例は、以下のようにコーディングすることもできます。

CHANGE    FIELD(#I) TO(1)
DOWHILE   COND('#I <= 2')
DELETE    FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM #I)
CHANGE    FIELD(#I) TO('#I + 1')
ENDWHILE
 

例3:フィールド#ORDNUMに指定された注文に関連付けられたすべての明細行を削除します。

DELETE FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM)
 

このコマンドにより、ファイルから複数のレコードが削除されることに注意してください。

例4:フィールド#ORDNUMに指定された注文に関連付けられたすべての明細行を削除し、次に注文頭書きレコードを削除します。

DELETE FROM_FILE(ORDLIN) WITH_KEY(#ORDNUM)
DELETE FROM_FILE(ORDHDR) WITH_KEY(#ORDNUM)
 

例5:フィールド#DLTINDの値がYのすべてのレコードをファイルNAMESから削除します。

DELETE FROM_FILE(NAMES) WHERE('#DLTIND = Y')
 

例6:フィールド#DLTINDの値がYで、フィールド#UPDATEの値が現在の日付より小さいすべてのレコードをファイルNAMESから削除します。

DELETE FROM_FILE(NAMES) WHERE('(#DLTIND = Y) AND (#UPDATE < *YYMMDD)')
 

現在の日付がYYMMDD形式(通常は#UPDATEと同じ形式)で保持されるシステム変数*YYMMDDを使用していることに注意してください。