Version 6.3.8 für Windows
 —  Statements  —

TERMINATE

TERMINATE [operand1 [operand2]]  

Dieses Dokument behandelt folgende Themen:

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.


Funktion

Das Statement TERMINATE bewirkt, dass die Natural-Session abgebrochen wird. Sie können das TERMINATE-Statement an beliebiger Stelle im Programm verwenden. Bei der Ausführung eines TERMINATE-Statements wird keine End-of-Page-Verarbeitung oder schleifenbeendende Verarbeitung mehr ausgeführt.

Das Verhalten des TERMINATE-Statements entspricht dem des STOP-Statments. Die Verarbeitung von Rückgabewerten wird nicht unterstützt.

Beim Remote Procedure Call (RPC): Siehe Notes on Natural Statements on the Server in der Natural Remote Procedure Call (RPC)-Dokumentation.

Seitenanfang

Syntax-Beschreibung

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand1 C S         N P  I                 ja nein
operand2 C S A     A  U                     ja ja

Syntax-Element-Beschreibung:

operand1
Return Code:

operand1 kann dazu verwendet werden, einen Return Code an das Programm zu übergeben, das die Kontrolle erhält, nachdem die Natural-Session abgebrochen wurde.

Für operand1 kann ein Wert von 0 bis 255 angegeben werden.

operand2
Übergabe zusätzlicher Informationen:
operand2 kann dazu verwendet werden, zusätzliche Informationen an das Programm zu übergeben, das nach dem Session-Abbruch die Kontrolle erhält.

Seitenanfang

Kontrollübergabe nach Abbruch

Nach dem Abbruch der Natural-Session erhält das Programm, dessen Name mit dem Profilparameter PROGRAM angegeben wurde, die Kontrolle.

Natural übergibt operand2 und den Wert des Profilparameters PRGPAR an dieses Programm, falls diese Angaben gemacht wurden. Das Programm erhält diese Parameter wie üblich als Argumente:

int main(int argc, char *argv[])
{
  /* Number of arguments passed. */
  printf("Number of arguments: %d\n", argc);
  /* Program name. */
  if ( argc > 0 )
    printf("Program: %s\n", argv[0]);
  /* Value of operand2 of the TERMINATE statement. */
  if ( argc > 1 )
    printf("Operand 2: %s\n", argv[1]);
  /* Value of the profile parameter PRGPAR. */
  if ( argc > 2 )
    printf("PRGPAR: %s\n", argv[2]);
  return 0;
}

Falls der Profilparameter PROGRAM nicht gesetzt wurde, erhält der Kommando-Interpreter die Kontrolle nach dem Abbruch.

Seitenanfang

Beispiel

** Example 'TEREX1': TERMINATE                                          
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 NAME                                                                
  2 SALARY (1)                                                          
*                                                                       
1 #PNUM     (A8)                                                        
1 #PASSWORD (A8)                                                        
END-DEFINE                                                              
*                                                                       
INPUT 'ENTER PASSWORD:' #PASSWORD                                       
*                                                                       
IF #PASSWORD NE 'USERPASS'                                              
  /*                                                                    
  TERMINATE                                                          
  /*                                                                    
END-IF                                                                  
*                                          
INPUT 'ENTER PERSONNEL NUMBER:' #PNUM      
*                                          
FIND EMPLOY-VIEW WITH PERSONNEL-ID = #PNUM 
  DISPLAY NAME SALARY (1)                  
END-FIND                                   
*                                          
END                                       

Seitenanfang