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