7.13.2 COMMITの使用例
ユーザーに注文の明細を入力するよう要求し、コミット操作を発行する前に、その注文の頭書きと関連するすべての行をデータベースに書き込みます。
GROUP_BY NAME(#ORDERHEAD) FIELDS(#ORDNUM #CUSTNUM #DATEDUE)
DEF_LIST NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #QUANTITY #PRICE)
SET_MODE TO(*ADD)
INZ_LIST NAMED(#ORDERLINE) NUM_ENTRYS(20)
REQUEST FIELDS(#ORDERHEAD) BROWSELIST(#ORDERLINE)
INSERT FIELDS(#ORDERHEAD) TO_FILE(ORDHDR)
SELECTLIST NAMED(#ORDERLINE) GET_ENTRYS(*NOTNULL)
INSERT FIELDS(#ORDERLINE) TO_FILE(ORDLIN)
ENDSELECT
COMMIT
(例えば) 4行目の明細行の書き込み中にファンクションが失敗した場合は、自動ロールバックが発行されます。これにより、注文の頭書きと作成済みのすべての明細行がファイルでロールバックされます。