RDB$SET_CONTEXT
Версии сервера
| 0.9 | 1.0 | 1.5.3 | 1.5.4 | 1.5.5 | 2.0 | 2.0.3 | 2.0.4 | 2.1 | 2.5 | 3.0 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | Да | Да | Да | Да | Да | Да |
Формат
RDB$SET_CONTEXT( “пространство имён”, переменная, значение)
Описание
Встроенная функция Позволяет задавать пользовательские переменые внутри транзакции или подключения значение которых можно получить при помощи RDB$GET_CONTEXT
⚠️ “Пространства имен” и переменые являются регистро зависимые
⚠️ Для предотвращения DoS атак, существует ограничение на 1000 переменых в одном “пространстве имен”
RDB$SET_CONTEXT устанавливает значение заданой переменой. Функция возвращает 1 если переменая существовала и 0 если нет.
⚠️ Чтобы удалить переменую из контекста необходимо присвоить ей NULL.
в настоящий момент есть всего 2 “пространства имен” которые можно использовать для установки переменых :
USER_SESSION для пользовательских переменых видимых в течении подключения.
USER_TRANSACTION для пользовательских переменых видимых в течении транзакции.
Пример
select rdb$set_context(‘USER_SESSION’,‘MY’,‘это моя крутая переменая’) from rdb$database select rdb$get_context(‘USER_SESSION’,‘MY’) from rdb$database select rdb$set_context(‘USER_SESSION’,‘MY’,NULL) from rdb$database
См. также
RDB$GET_CONTEXT
Источник
%Firebird%\doc\sql.extensions\README.context_variables2.txt
Обсуждение