LIMIT
n
|
This document covers the following topics:
Related Statements: 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
Belongs to Function Group: Database Access and Update
The LIMIT
statement is used to limit the number of iterations of a
processing loop initiated with a FIND
,
READ
, or HISTOGRAM
statement.
The limit remains in effect for all subsequent processing loops in the program until it
is overridden by another LIMIT
statement.
The LIMIT
statement does not apply to individual statements in which a limit
is explicitly specified (for example, FIND
(n) ...
).
If the limit is reached, processing stops and a message is displayed; see also the
session parameter LE
which determines the reaction when the limit for the processing loop is exceeded.
If no LIMIT
statement is specified, the default global limit defined with
the Natural profile parameter LT
during Natural installation will be used.
To determine whether a processing loop has reached the limit, each record read in the loop is counted against the limit. If the processing loop has reached the limit, the following will apply:
A record that is rejected because of criteria specified in a FIND
or READ
statement WHERE
clause is not counted against the
limit.
A record that is rejected as a result of an ACCEPT
/REJECT
statement is counted against
the limit.
** 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