LIMIT n |
このドキュメントでは、次のトピックについて説明します。
関連ステートメント:ACCEPT/REJECT
| AT BREAK
| AT START OF DATA
| AT END OF DATA
| BACKOUT TRANSACTION
| BEFORE BREAK PROCESSING
| DELETE
| END TRANSACTION
| FIND
| GET
| GET SAME
| GET TRANSACTION
| HISTOGRAM
| PASSW
| PERFORM BREAK
PROCESSING
| READ
| RETRY
| STORE
| UPDATE
関連機能グループ:データベースへのアクセスと更新
LIMIT
ステートメントは、FIND
、READ
、または HISTOGRAM
ステートメントで開始された処理ループの実行回数を制限するために使用します。
制限値は、他の LIMIT
ステートメントで上書きされるまで、プログラム内の後続のすべての処理ループに有効となります。
LIMIT
ステートメントは、制限値が明示されている個々のステートメント(例:FIND (n)
...
)には適用されません。
制限値に達すると処理が終了し、メッセージが表示されます。また、処理ループが制限値を超えた場合の反応を決定するセッションパラメータ LE
も参照してください。
LIMIT
ステートメントの指定がなければ、Natural インストール時に Natural プロファイルパラメータ LT
と一緒に定義されたデフォルトのグローバル制限が使用されます。
処理ループが制限に達したかどうかを確定するために、ループ内で読み込んだ各レコードを制限に対してカウントします。処理ループの制限には以下が適用されます。
ACCEPT
/REJECT
ステートメントで排除されたレコードは、制限数にカウントされます。
構文要素 | 説明 |
---|---|
LIMIT
n |
制限値の指定
制限値 制限値がゼロであれば、処理ループに入りません。 |
** Example 'LMTEX1': LIMIT ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME 2 CITY END-DEFINE * LIMIT 4 * READ EMPLOY-VIEW BY NAME STARTING FROM 'BAKER' DISPLAY NOTITLE NAME PERSONNEL-ID CITY *COUNTER END-READ * END
NAME PERSONNEL CITY CNT ID -------------------- --------- -------------------- ----------- BAKER 20016700 OAK BROOK 1 BAKER 30008042 DERBY 2 BALBIN 60000110 BARCELONA 3 BALL 30021845 DERBY 4
** Example 'LMTEX2': LIMIT (valid for two database loops) ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 NAME END-DEFINE * LIMIT 3 * FIND EMPLOY-VIEW WITH NAME > 'A' READ EMPLOY-VIEW BY NAME STARTING FROM 'BAKER' DISPLAY NOTITLE 'CNT(0100)' *COUNTER(0100) 'CNT(0110)' *COUNTER(0110) END-READ END-FIND * END
CNT(0100) CNT(0110) ----------- ----------- 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3