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 with 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