Eingabe- und Ausgabeparameter
Die Ausführung eines Blocks ohne Eingabeparameter sollte mit jedem Firebird-Client möglich sein, der es dem Benutzer erlaubt, eigene DSQL-Anweisungen einzugeben.Wenn es Eingabeparameter gibt, wird es schwieriger: Diese Parameter müssen ihre Werte erhalten, nachdem die Anweisung vorbereitet wurde, aber bevor sie ausgeführt wird.Dies erfordert besondere Vorkehrungen, die nicht jede Client-Anwendung bietet.(Firebirds eigenes isql zum Beispiel nicht.)
Der Server akzeptiert nur Fragezeichen (“?
”) als Platzhalter für die Eingabewerte, nicht “:a
”, “:MyParam
” etc., oder wörtliche Werte.Client-Software unterstützt jedoch möglicherweise das Formular “:xxx
” und wird es vorverarbeiten, bevor es an den Server gesendet wird.
Wenn der Block Ausgangsparameter hat, muss Sie SUSPEND
verwenden, sonst wird nichts zurückgegeben.
Die Ausgabe wird immer in Form einer Ergebnismenge zurückgegeben, genau wie bei einer SELECT
-Anweisung.Sie können RETURNING_VALUES
nicht verwenden oder den Block INTO
einige Variablen ausführen, selbst wenn es nur eine Ergebniszeile gibt.