END [OF] TRANSACTION [operand1 |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE BREAK PROCESSING | DELETE | FIND | GET | GET SAME | GET TRANSACTION DATA | FIND HISTOGRAM | LIMIT | PASSW | PERFORM BREAK PROCESSING | READ | RETRY | STORE | UPDATE
関連機能グループ:データベースへのアクセスと更新
END TRANSACTION ステートメントは、論理トランザクションの終了を示すために使用します。論理トランザクションは、データベースに含まれている情報の論理的一貫性を保証するために、完全に実行される必要がある最小の作業論理ユニットです。この定義はユーザーが行います。
END TRANSACTION ステートメントが正しく実行されると、後続のユーザー、Natural、データベース、またはオペレーティングシステムによる中断に関係なく、トランザクション中のすべての更新処理をデータベースに対して物理的に適用することが保証されます。END TRANSACTION ステートメントが正しく終了しなかった場合、トランザクション中の更新処理は自動的にバックアウトされます。
また、END TRANSACTION ステートメントでは、トランザクション中にホールド状態となっていたすべてのレコードが解放されます。
END TRANSACTION ステートメントは、論理条件に基づいて実行できます。
詳細については、『プログラミングガイド』の「データベース更新 - トランザクション処理」セクションを参照してください。
このステートメントを、Entire System Server で使用することはできません。
オペランド定義テーブル:
| オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | N | A | U | N | P | I | F | B | D | T | ○ | × | ||||||
構文要素の説明:
| 構文要素 | 説明 |
|---|---|
operand1 |
トランザクションデータの保存:
Adabas データベースに適用されるトランザクションに対して、ユーザーは、このステートメントを使用して、トランザクション関連情報を保存することもできます。ただし、トランザクションデータは 2000 バイトを超えないようにする必要があります。トランザクションデータは、 トランザクションデータは、Natural プロファイルパラメータ
|
トランザクションデータ(operand1)が指定されていない END TRANSACTION ステートメントは、Natural の制御下で、データベーストランザクションが行われたときにのみ実行されます。Natural プロファイルパラメータ ET の設定により、ステートメントがどのように実行されるかが決まります。ET=OFF を指定すると、トランザクションの影響を受けたデータベースに対してのみ実行されます。ET=ON を指定すると、最後の BACKOUT
TRANSACTION または END TRANSACTION ステートメントの実行以後に参照された、全データベースに対して実行されます。
トランザクションデータ(operand1)が with END TRANSACTION ステートメントは常に実行され、データベースにトランザクションデータが格納されます(下記のセクションを参照)。また、他のどのデータベースに対して END TRANSACTION ステートメントが実行されるかは、ET パラメータの設定で決まります(上記を参照)。
** Example 'ETREX1': END TRANSACTION
**
** CAUTION: Executing this example will modify the database records!
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 CITY
2 COUNTRY
END-DEFINE
*
FIND EMPLOY-VIEW WITH CITY = 'BOSTON'
ASSIGN COUNTRY = 'USA'
UPDATE
END TRANSACTION
/*
AT END OF DATA
WRITE NOTITLE *NUMBER 'RECORDS UPDATED'
END-ENDDATA
/*
END-FIND
END
7 RECORDS UPDATED
** Example 'ETREX2': END TRANSACTION (with ET data)
**
** CAUTION: Executing this example will modify the database records!
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 PERSONNEL-ID
2 NAME
2 FIRST-NAME
2 CITY
*
1 #PERS-NR (A8) INIT <' '>
END-DEFINE
*
REPEAT
INPUT 'ENTER PERSONNEL NUMBER TO BE UPDATED:' #PERS-NR
IF #PERS-NR = ' '
ESCAPE BOTTOM
END-IF
/*
FIND EMPLOY-VIEW PERSONNEL-ID = #PERS-NR
INPUT (AD=M) NAME / FIRST-NAME / CITY
UPDATE
END TRANSACTION #PERS-NR
END-FIND
/*
END-REPEAT
END
ENTER PERSONNEL NUMBER TO BE UPDATED: 20027800
NAME LAWLER FIRST-NAME SUNNY CITY MILWAUKEE