/FREE ... /END-FREE |
Kennzeichnet einen Free-Format-Codeblock |
/FREE ... /END-FREE |
/FREE
// Free-Format Code
/END-FREE
|
APPEND |
Fügt einen neuen Datensatz in eine Datei ein |
APPEND Datenstruktur Dateiname; |
DCL-DS NeuerKunde;
NeuerKunde.Name = 'Max Mustermann';
APPEND NeuerKunde Kunden;
|
BEGSR / ENDSR |
Definiert einen internen Subroutinenblock (älter, aber noch gültig) |
BEGSR SubroutineName; ... ENDSR; |
BEGSR Berechnungen;
// Subroutinen-Code
DSPLY 'Berechnungen';
ENDSR;
|
CHAIN |
Sucht einen Datensatz über einen Schlüssel in einer Datei |
CHAIN Schlüssel Dateiname; |
CHAIN kundeSchluessel Kunden;
IF %FOUND(Kunden);
DSPLY 'Datensatz gefunden';
ELSE;
DSPLY 'Kein Datensatz';
ENDIF;
|
CLOSE |
Schließt eine geöffnete Datei |
CLOSE Dateiname; |
CLOSE Kunden;
|
DCL-DS |
Deklaration einer Datenstruktur |
DCL-DS Name [QUALIFIED]; ... END-DS; |
DCL-DS Kunde QUALIFIED;
Name CHAR(50);
Ort CHAR(50);
END-DS;
|
DCL-PI / END-PI |
Definition der Prozedur-Schnittstelle |
DCL-PI [Name]; ... END-PI; |
DCL-PI MeineProc INT(10);
a INT(10);
b INT(10);
END-PI;
|
DCL-PROC / END-PROC |
Definition einer Prozedur |
DCL-PROC Name; ... END-PROC; |
DCL-PROC MeineProzedur;
// Prozedur-Code
END-PROC;
|
DCL-PR / END-PR |
Definition eines Prototyps für externe Prozeduren |
DCL-PR Name [Rückgabetyp]; ... END-PR; |
DCL-PR AddNumbers INT(10);
a INT(10);
b INT(10);
END-PR;
|
DCL-S |
Deklaration einer Skalarvariable |
DCL-S Name Typ [INZ(Wert)]; |
DCL-S Counter INT(10) INZ(0);
|
DELETE |
Löscht einen Datensatz aus einer Datei |
DELETE Dateiname; |
DELETE Kunden;
|
DOU |
Schleife, die wiederholt, bis eine Bedingung erfüllt ist (do until) |
DOU (Bedingung); ... ENDDO; |
DOU (x = 10);
DSPLY x;
x += 1;
ENDDO;
|
DOW |
Schleife mit Bedingung |
DOW (Bedingung); ... ENDDO; |
DOW (counter < 10);
counter += 1;
ENDDO;
|
DSPLY |
Anzeige einer Nachricht oder eines Wertes |
DSPLY Ausdruck; |
DSPLY 'Hallo Welt';
|
EXEC SQL |
Führt einen eingebetteten SQL-Befehl aus |
EXEC SQL ; |
EXEC SQL SELECT * FROM Kunden;
|
EXSR |
Ruft einen internen Subroutine-Block auf |
EXSR SubroutineName; |
EXSR Berechnungen;
|
FOR |
Wiederholung mit fester Anzahl |
FOR index = start TO limit BY step; ... ENDFOR; |
FOR i = 1 TO 10 BY 1;
DSPLY i;
ENDFOR;
|
IF |
Bedingte Anweisung |
IF (Bedingung); ... [ELSE; ...] ENDIF; |
IF (x > 0);
DSPLY 'Positiv';
ELSE;
DSPLY 'Nicht positiv';
ENDIF;
|
ITER |
Nächste Iteration der Schleife überspringen |
ITER; |
DOW (i < 10);
IF (i = 5);
ITER;
ENDIF;
DSPLY i;
i += 1;
ENDDO;
|
LEAVE |
Schleife vorzeitig beenden |
LEAVE; |
FOR i = 1 TO 10;
IF (i = 5);
LEAVE;
ENDIF;
DSPLY i;
ENDFOR;
|
LIKE |
Deklaration einer Variablen, die den Datentyp einer bestehenden Variablen übernimmt |
DCL-S NeueVar LIKE(BestehendeVar) [INZ(Wert)]; |
DCL-S altVar CHAR(20) INZ('Hallo');
DCL-S neuVar LIKE(altVar) INZ('Welt');
|
LIKEDS |
Deklaration einer Datenstruktur, die das Layout einer Datei oder bestehenden Datenstruktur übernimmt |
DCL-DS DSName LIKEDS(Dateiname); |
DCL-DS Kunde LIKEDS(Kunden);
|
MONITOR |
Fehlerbehandlung (Try-Catch) |
MONITOR; ... ON-ERROR; ... ENDMON; |
MONITOR;
// Code, der Fehler verursachen kann
ON-ERROR;
DSPLY 'Fehler aufgetreten';
ENDMON;
|
OPEN |
Öffnet eine Datei für die Verarbeitung |
OPEN Dateiname; |
OPEN Kunden;
|
QUALIFIED |
Attribut, das erfordert, dass die Felder einer Datenstruktur nur über den Struktur-Namen angesprochen werden |
wird in DCL-DS verwendet: DCL-DS DSName QUALIFIED; ... END-DS; |
DCL-DS Kunde QUALIFIED;
Name CHAR(50);
Ort CHAR(50);
END-DS;
|
READ |
Lesen eines Datensatzes aus einer Datei |
READ Dateiname [Variable]; |
READ Kunden;
|
READE |
Schlüsselsequentielles Lesen (weiterer Datensatz im Schlüsselbereich) |
READE Schlüssel Dateiname; |
READE kundeSchluessel Kunden;
IF %FOUND(Kunden);
DSPLY Kunde.Name;
ENDIF;
|
RETURN |
Beendet ein Programm oder eine Prozedur |
RETURN [Wert]; |
IF (error);
RETURN -1;
ENDIF;
|
SELECT |
Bedingte Auswahl |
SELECT; WHEN (Bedingung); ... OTHER; ... ENDSELECT; |
SELECT;
WHEN (x = 1); DSPLY 'Eins';
WHEN (x = 2); DSPLY 'Zwei';
OTHER; DSPLY 'Andere';
ENDSELECT;
|
SETGT |
Setzt den Dateizeiger auf den ersten Datensatz oberhalb eines Schlüsselwerts |
SETGT Schlüssel Dateiname; |
SETGT kundeSchluessel Kunden;
READ Kunden;
|
SETLL |
Setzt den Dateizeiger auf den Beginn eines Schlüsselbereichs |
SETLL Schlüssel Dateiname; |
SETLL kundeSchluessel Kunden;
READ Kunden;
|
UPDATE |
Aktualisiert einen Datensatz in einer Datei |
UPDATE Datenstruktur Dateiname; |
Kunde.Name = 'Neuer Name';
UPDATE Kunde Kunden;
|
WRITE |
Schreiben eines Datensatzes in eine Datei |
WRITE Dateiname; |
WRITE Kunden;
|