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