Page History
[ |../../index.htm#lansa/commit_e.htm]
現在地:
...
7.16.2 COMMIT の使用例
ユーザーに注文の明細を入力するよう要求し、コミット操作を発行する前に、その注文の頭書きと関連するすべての行をデータベースに書き込みます。
| Code Block |
|---|
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行目の明細行の書き込み中にファンクションが失敗した場合は、自動ロールバックが発行されます。これにより、注文の頭書きと作成済みのすべての明細行がファイルでロールバックされます。
[ |../../index.htm#lansa/commit_e.htm]