FETCH
|
operand1 [operand2 [(parameter)]] |
Dieses Dokument 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 Unterprogrammen
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 Remote Procedure Call (RPC)-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
(Database Open/Close Processing) 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:
REPEAT |
Wegfall der Notwendigkeit einer Benutzer-Interaktion:
|
---|---|
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. 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