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