====== 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