Inhalt
Index
Support Über uns
Home

2.4.4 CALL




 
Format:
CALL {Programmname / Datenfeld / Literal} [USING [[BY] {REFERENCE / CONTENT / VALUE}] Datenfeld1 ...] [{GIVING / RETURNING} [INTO] Returnfeld] ] [[ON] {EXCEPTION /OVERFLOW} Befehlssequenz1] [NOT [ON] EXCEPTION Befehlssequenz2] [END-CALL][.]


Befindet sich der Name des Unterprogramms in einem Datenfeld, muß das Unterprogramm in Cobol geschrieben sein und mit c32 -n compiliert werden.

Mit CALL wird ein Unterprogramm aufgerufen, in dem die Verarbeitung des Programmes fortgesetzt wird.

Nach Beendigung des Unterprogrammes wird das Programm mit der nächsten COBOL-Anweisung fortgesetzt.

Unterprogramme können sowohl in COBOL geschriebene Programme oder C-Routinen aus der COBOL-Library sein.

Jeder Parameter kann Eingabe- oder Ausgabewert darstellen, die Definition erfolgt nur durch das Unterprogramm selbst.

Etwaige Übergabefehler (z.B. Angabe einer Konstanten anstelle eines Datenfeldes) werden mit einer Programmfehlermeldung abgewiesen.

Bei Cobol-Unterprogrammen erfolgt die Übergabe mit Hilfe der LINKAGE SECTION .

Die Reihenfolge der Parameter in der CALL-Anweisung muß mit der Reifenfolge der USING-Anweisung PROCEDURE USING übereinstimmen.

Der Inhalt der Datenfelder innerhalb des Unterprogrammes bleiben unverändert. Zum neu initialisieren muß der Befehl CANCEL verwendet werden.

Als Beispiel dient folgendes Unterprogramm:

      *c32 -n call1.cob
       identification division.
       environment division.
       data division.
       working-storage section.
       77 count         pic 999 value 0.
       linkage section.
       01 wert          pic x(20).


       procedure division using wert.
        call datum using wert.
        add 1 to count.
        move count to return-code.



call1 zählt nur einen internen Zähler hoch und gibt das Datum zurück.

Dieses Unterprogramm wird von folgendem Hauptprogramm aufgerufen:

      *c32 callm;slink callm call1.o
       identification division.
       environment division.
       data division.
       working-storage section.
       01 uname         pic x(20).
       01 cnt           pic 9(5).
       linkage section.
       01 feld          pic x(20).       
       procedure division.
        move 'call1' to uname.
        call uname using feld returning cnt.
        display cnt ' ' feld.
        accept omitted.
        call uname using feld returning cnt.
        display cnt ' ' feld.
        accept omitted.
        cancel uname.
        call uname using feld returning cnt.
        display cnt ' ' feld.
        accept omitted. 



Und hier die Ausgabe:

Unterprogramme



Zurück zu Acc-Cobol Alter Statement    Hoch zu Procedure Divison in COBOL    Weiter zu CANCEL
Entwickler Portal Impressum AGB Kontakt


© 1980-2017 Acc Computertechnik GmbH All rights reserved.