RDB$SET_CONTEXT()
DSQL, PSQL * Als deklariertes UDF sollte es in ESQL verfügbar sein
INTEGER
RDB$SET_CONTEXT ('<namespace>', <varname>, <value> | NULL)
<namespace> ::= USER_SESSION | USER_TRANSACTION
<varname> ::= Eine Zeichenfolge in Anführungszeichen von max. 80 Zeichen
<value> ::= Ein Wert beliebiger Art, solange er umsetzbar ist
zu einem VARCHAR(255)
| Parameter | Beschreibung |
|---|---|
namespace |
Namespace |
varname |
Variablenname.Groß-/Kleinschreibung beachten.Die maximale Länge beträgt 80 Zeichen |
value |
Daten eines beliebigen Typs, sofern sie in |
Erstellt, setzt oder hebt eine Variable in einem der vom Benutzer beschreibbaren Namensräume USER_SESSION und USER_TRANSACTION auf.
Die Namensräume USER_SESSION und USER_TRANSACTION sind zunächst leer.Der Benutzer kann mit RDB$SET_CONTEXT() Variablen darin erstellen und setzen und mit RDB$GET_CONTEXT() abrufen.Der Kontext USER_SESSION ist an die aktuelle Verbindung gebunden.Variablen in USER_TRANSACTION existieren nur in der Transaktion, in der sie gesetzt wurden.Wenn die Transaktion endet, werden der Kontext und alle darin definierten Variablen zerstört.
Die Funktion gibt 1 zurück, wenn die Variable bereits vor dem Aufruf existierte und 0 wenn dies nicht der Fall war.Um eine Variable aus einem Kontext zu entfernen, setzen Sie sie auf NULL.Wenn der angegebene Namespace nicht existiert, wird ein Fehler ausgegeben.Sowohl Namensraum- als auch Variablennamen müssen in einfachen Anführungszeichen eingegeben werden, wobei die Groß-/Kleinschreibung beachtet werden muss, nicht NULL-Zeichenfolgen.
|
Note
|
|
select rdb$set_context('USER_SESSION', 'MyVar', 493) from rdb$database
rdb$set_context('USER_SESSION', 'RecordsFound', RecCounter);
select rdb$set_context('USER_TRANSACTION', 'Savepoints', 'Yes')
from rdb$database