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
См. также
Источник
%Firebird%\doc\sql.extensions\README.context_variables2.txt
Обсуждение