Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../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行目の明細行の書き込み中にファンクションが失敗した場合は、自動ロールバックが発行されます。これにより、注文の頭書きと作成済みのすべての明細行がファイルでロールバックされます。
[ Image Removed |../../index.htm#lansa/commit_e.htm]