LIMIT

#### Search Results

Search

# LIMIT

`LIMIT` n

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax-Beschreibung

- Beispiele

Verwandte 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`

Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen

## Funktion

Das Statement `LIMIT` dient dazu, die Anzahl der Durchläufe einer Verarbeitungsschleife, die mit einem `FIND`-, `READ`- oder `HISTOGRAM`-Statement initiiert wurde, zu begrenzen.

Das festgesetzte Limit gilt für alle nachfolgenden Verarbeitungsschleifen des Programms, bis es durch ein weiteres `LIMIT`-Statement außer Kraft gesetzt wird.

Das `LIMIT`-Statement gilt nicht für einzelne Statements, in denen ausdrücklich ein anderes Limit angegeben ist, zum Beispiel `FIND (n) ...`.

Wenn das Limit erreicht ist, wird die Verarbeitung der betreffenden Schleife abgebrochen und eine entsprechende Meldung ausgegeben. Siehe auch Session-Parameter `LE`, der die Reaktion darauf festlegt, wann das Limit für die Verarbeitungsschleife überschritten wird.

Wird kein `LIMIT`-Statement verwendet, so gilt standardmäßig das mit dem Natural- Profilparameter `LT` bei der Natural-Installation festgesetzte globale Limit.

### Zählweise

Um zu ermitteln, ob eine Verarbeitungsschleife das Limit erreicht hat, wird jeder mit der Schleife gelesene Datensatz gezählt; hierbei gilt:

- Ein Datensatz, der aufgrund der `WHERE`-Bedingung eines `FIND`- oder `READ`-Statements zurückgewiesen wird, wird nicht mitgezählt.

- Ein Datensatz, der aufgrund eines `ACCEPT`/`REJECT`-Statements zurückgewiesen wird, wird mitgezählt.

## Syntax-Beschreibung

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`LIMIT n` | Limit-Angabe: Das Limit n muss als numerische Konstante angegeben werden und kann einen Wert von `0` bis `4294967295` (führende Nullen sind optional) haben. Ist das Limit auf Null (0) gesetzt, wird die Schleife nicht durchlaufen.

## Beispiele

- Beispiel 1 — LIMIT-Statement

- Beispiel 2 — LIMIT-Statement (gültig für zwei Datenbankschleifen)

### Beispiel 1 — LIMIT-Statement

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

Ausgabe des Programms `LMTEX1`:

            NAME         PERSONNEL         CITY            CNT
                            ID
    -------------------- --------- -------------------- -----------

    BAKER                20016700  OAK BROOK                      1
    BAKER                30008042  DERBY                          2
    BALBIN               60000110  BARCELONA                      3
    BALL                 30021845  DERBY                          4

### Beispiel 2 — LIMIT-Statement (gültig für zwei Datenbankschleifen)

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

Ausgabe des Programms `LMTEX2`:

     CNT(0100)   CNT(0110)
    ----------- -----------

              1           1
              1           2
              1           3
              2           1
              2           2
              2           3
              3           1
              3           2
              3           3

### On this page

- Funktion
- Syntax-Beschreibung
- Beispiele