FETCH
|
|
|
|
|
operand1
[operand2
[(parameter)]] |
Dieser Abschnitt behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: CALL | CALL FILE | CALL LOOP | CALLNAT | DEFINE
SUBROUTINE | ESCAPE | FETCH
| PERFORM
Gehört zur Funktionsgruppe: Aufrufen von Programmen und Subprogrammen
Das Statement FETCH dient dazu, ein Natural-Objektprogramm auszuführen,
welches als Hauptprogramm geschrieben wurde. Das zu ladende Programm muss vorher mit einem
STOW- oder
CATALOG-Kommando in der Natural-Systemdatei in
Objektform gespeichert worden sein. Ein im Arbeitsbereich des Editors befindliches
Sourceprogramm wird durch die Ausführung eines FETCH-Statements nicht
überschrieben.
Für Natural RPC: Siehe Notes on Natural Statements on the Server in der Natural RPC (Remote Procedure Call)-Dokumentation.
Zusätzlich zu den explizit mit dem FETCH-Statement übergebenen Parametern
hat das aufgerufene Programm Zugang zu der Global Data Area des aufrufenden
Programms.
Je nachdem, wie Ihr Natural-Administrator den Natural-Profilparameter OPRB
(Datenbank-Open/Close-Befehlsverarbeitung) gesetzt hat, kann es
sein, dass das FETCH-Statement die Ausführung eines internen END TRANSACTION-Statements auslöst. Soll
eine logische Transaktion mehrere Programme einschließen, so wenden Sie sich bitte
vorher an Ihren Natural-Administrator, um sicherzustellen, dass der
OPRB-Parameter entsprechend gesetzt ist.
Operanden-Definitionstabelle:
| Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | C | S | A | ja | nein | |||||||||||||||
| operand2 | C | S | A | G | A | U | N | P | I | F | B | D | T | L | G | ja | ja | |||
Syntax-Element-Beschreibung:
| Syntax-Element | Beschreibung |
|---|---|
REPEAT
|
Wegfall der Notwendigkeit einer Benutzerinteraktion:
|
RETURN
|
Aufrufen und Ausführen eines Objekts des Typs Programm als
Routine:
Wird Geben Sie |
operand1
|
Programm-Name:
Der Name des aufgerufenen Programms (maximal 8 Zeichen lang) kann entweder als alphanumerische Konstante oder als Inhalt einer alphanumerischen Variablen der Länge 1 bis 8 angegeben werden. Die Groß-/Kleinschreibung des Namens wird nicht verändert. Natural sucht das Programm zunächst in der zum Zeitpunkt der Ausführung des
Der Name des Programms darf ein Und-Zeichen (&) enthalten; zur Laufzeit
wird dieses Zeichen durch den aus einem Zeichen bestehenden Code ersetzt, der
dem aktuellen Wert der Systemvariablen |
operand2
|
Zu übergebende Parameter-Felder:
Mit dem Das aufgerufene Programm liest die übergebenen Parameterfelder über ein
Werden mehr Parameter übergeben als vom Anmerkung |
parameter
|
Datumsformat für Datumsvariable:
Wenn operand2 eine Datumsvariable ist, können Sie
den Session-Parameter |
** Example 'FETEX1': FETCH (with parameter)
************************************************************************
DEFINE DATA LOCAL
1 #PNUM (N8)
1 #FNC (A1)
END-DEFINE
*
INPUT 10X 'SELECTION MENU FOR EMPLOYEES SYSTEM' /
10X '-' (35) //
10X 'ADD (A)' /
10X 'UPDATE (U)' /
10X 'DELETE (D)' /
10X 'STOP (.)' //
10X 'PLEASE ENTER FUNCTION: ' #FNC ///
10X 'PERSONNEL NUMBER:' #PNUM
*
DECIDE ON EVERY VALUE OF #FNC
VALUE 'A', 'U', 'D'
IF #PNUM = 0
REINPUT 'PLEASE ENTER A VALID NUMBER' MARK *#PNUM
END-IF
VALUE 'A'
FETCH 'FETEXAD' #PNUM
VALUE 'U'
FETCH 'FETEXUP' #PNUM
VALUE 'D'
FETCH 'FETEXDE' #PNUM
VALUE '.'
STOP
NONE
REINPUT 'PLEASE ENTER A VALID FUNCTION' MARK *#FNC
END-DECIDE
*
END
** Example 'FETEXAD': FETCH (called by FETEX1) ************************************************************************ DEFINE DATA LOCAL 1 #PERS-NR (N8) END-DEFINE * INPUT #PERS-NR * WRITE *PROGRAM 'Record added with personnel number:' #PERS-NR * END
** Example 'FETEXUP': FETCH (called by FETEX1) ************************************************************************ DEFINE DATA LOCAL 1 #PERS-NR (N8) END-DEFINE * INPUT #PERS-NR * WRITE *PROGRAM 'Record updated with personnel number:' #PERS-NR * END
** Example 'FETEXDE': FETCH (called by FETEX1) ************************************************************************ DEFINE DATA LOCAL 1 #PERS-NR (N8) END-DEFINE * INPUT #PERS-NR * WRITE *PROGRAM 'Record deleted with personnel number:' #PERS-NR * END
Ausgabe des Programms FETEX1:
SELECTION MENU FOR EMPLOYEES SYSTEM
-----------------------------------
ADD (A)
UPDATE (U)
DELETE (D)
STOP (.)
PLEASE ENTER FUNCTION: D
PERSONNEL NUMBER: 1150304
Nach Eingabe und Bestätigung der Funktion und Personalnummer:
Page 1 05-01-13 11:58:46
FETEXDE Record deleted with personnel number: 1150304