Die RETURN-Anweisung beendet die Verarbeitung. Der nächste Schritt richtet sich nach dem Programmierungskontext, in dem die RETURN-Anweisung ausgegeben wurde.
Bei der Verwendung der RETURN-Anweisung in einer Funktion stoppt sie die Verarbeitung dieser Funktion und gibt die Steuerung an den aufrufenden Ausdruck zurück. Der Ausdruck (der vorhanden sein muss) wird ausgewertet und fungiert als Rückgabewert der Funktion. Wenn eine Funktion eine Rückgabe durchführt, indem sie die Anweisungsliste durchläuft, ist dies ein Fehler. Der Datentyp des zurückgegebenen Werts muss derselbe sein wie der in der Deklaration der Funktion.
Bei der Verwendung der RETURN-Anweisung in einer Prozedur stoppt sie die Verarbeitung dieser Prozedur und gibt die Steuerung an die aufrufende CALL-Anweisung zurück. Eine RETURN-Anweisung, die innerhalb einer Prozedur verwendet wird, darf keinen Ausdruck haben.
Wenn die RETURN-Anweisung in einem Hauptanschlusscode eines Filter-, Berechnungs- oder Datenbankknotens verwendet wird, so stoppt sie die Verarbeitung der ESQL des Knotens und übergibt die Steuerung an den nächsten Knoten. In solchen Fällen, in denen der Ausdruck vorhanden ist, muss dieser einen BOOLESCHEN Wert ergeben. In Fällen, in denen es keinen Ausdruck gibt, setzt ein Filterknoten einen UNKNOWN-Wert voraus und gibt Daten an sein UNKNOWN-Terminal weiter; Berechnungs- und Datenbankknoten geben Daten an ihre Ausgangsterminals weiter.
Rückgabewert | Ergebnis | |
Berechnungsknoten: | ||
RETURN | TRUE | Nachricht an Ausgangsterminal weitergeben. |
FALSE | Nicht weitergeben. | |
UNKNOWN | Nicht weitergeben. | |
RETURN; | Nachricht an Ausgangsterminal weitergeben. | |
Filterknoten: | ||
RETURN | TRUE | Nachricht an TRUE-Terminal weitergeben. |
FALSE | Nachricht an FALSE-Terminal weitergeben. | |
UNKNOWN | Nachricht an UNKNOWN-Terminal weitergeben. | |
RETURN; | Nachricht an UNKNOWN-Terminal weitergeben. | |
Datenbankknoten: | ||
RETURN | TRUE | Nachricht an Ausgangsterminal weitergeben. |
FALSE | Nicht weitergeben. | |
UNKNOWN | Nicht weitergeben. | |
RETURN; | Nachricht an Ausgangsterminal weitergeben. |
-- Variablen deklarieren -- DECLARE a INT; DECLARE PriceTotal FLOAT; DECLARE NumItems INT; -- Werte initialisieren -- SET a = 1; SET NumItems = 0; SET PriceTotal = 0.0; -- Berechnen Sie den Wert des Auftrags, falls es sich jedoch um einen Großeinkauf handelt, -- -- muss der Auftrag anders gehandhabt werden (Rabatt gewährleisten); es muss also TRUE -- -- oder FALSE zurückgegeben werden, je nachdem, wie groß der Auftrag ist. -- WHILE a <= CARDINALITY(Invoice.Purchases.Item[a] DO SET NumItems = NumItems + Invoice.Purchases.Item[a].Quantity; SET PriceTotal = PriceTotal + Invoice.Purchases.Item[a].UnitPrice; SET a = a + 1; END; RETURN PriceTotal/NumItems > 42;Wenn der durchschnittliche Preis von Artikeln größer als 42 ist, wird TRUE zurückgegeben, andernfalls FALSE. Somit könnte ein Filterknoten Nachrichten, die günstige Artikel beschreiben, auf einem anderen Weg weiterleiten, als Nachrichten, die teure Artikel beschreiben.
Ein Beispiel für RETURN FALSE, um die implizite Weitergabe am Ende der Verarbeitung in einem Rechenknoten zu verhindern, finden Sie unter PROPAGATE-Anweisung.