Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBExpert Новый топик    Ответить
 Установка контекстных переменных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12343
EXECUTE ibeblock
AS
BEGIN
  RDB$SET_CONTEXT('USER_SESSION', 'Test1', 1);
  SELECT RDB$SET_CONTEXT('USER_SESSION', 'Test2', 2) FROM rdb$database into :var;
END;
Идем в mon$context_variables и видим
MON$ATTACHMENT_IDMON$TRANSACTION_IDMON$VARIABLE_NAMEMON$VARIABLE_VALUE
2 702Test22



С уважением, Vasilisk

Сообщение было отредактировано: 28 авг 20, 18:13
28 авг 20, 18:13    [22188979]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
И чего?

Пиши сразу, что не так. Чё я должен догадываться-то?
28 авг 20, 18:21    [22188985]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12343
IBExpert
Пиши сразу, что не так.
Конструкция
 RDB$SET_CONTEXT('USER_SESSION', 'Test1', 1);
не работает. Новая переменная не появляется.

Работает только внутри селекта
SELECT RDB$SET_CONTEXT('USER_SESSION', 'Test2', 2) FROM rdb$database into :var;
28 авг 20, 18:27    [22188987]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
_Vasilisk_

[/src]не работает. Новая переменная не появляется.


УМВР.
EXECUTE ibeblock
AS
BEGIN
  RDB$SET_CONTEXT('USER_SESSION', 'Test1', 'UMVR!!!');
  SELECT RDB$GET_CONTEXT('USER_SESSION', 'Test1') FROM RDB$DATABASE INTO :var;
  ibec_ShowMessage(var);
END;
28 авг 20, 18:38    [22189002]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12343
IBExpert
УМВР.
EXECUTE ibeblock
AS
BEGIN
  RDB$SET_CONTEXT('USER_SESSION', 'Test1', 'UMVR!!!');
  SELECT RDB$GET_CONTEXT('USER_SESSION', 'Test1') FROM RDB$DATABASE INTO :var;
  ibec_ShowMessage(ibec_Coalesce(var, 'NULL'));
END;
NULL

Версия 2020.8.28.1

Без ibec_Coalesce()
Invalid variant type conversion


Сообщение было отредактировано: 28 авг 20, 18:46
28 авг 20, 18:48    [22189011]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
_Vasilisk_

Версия 2020.8.28.1


Засовывай блок в отладчик и смотри там на закладке "Last statement" внизу, какой запрос выполняется на вызове RDB$SET_CONTEXT.
Если там пусто, значит что-то такое я сегодня уже вылечил, просто не помню.
У меня там
SELECT RDB$SET_CONTEXT('USER_SESSION', 'Test1', 'UMVR!!!') FROM RDB$DATABASE
28 авг 20, 18:55    [22189015]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12343
IBExpert
Если там пусто
Не пусто
SELECT RDB$SET_CONTEXT('USER_SESSION', 'Test1', 'UMVR!!!') FROM RDB$DATABASE
28 авг 20, 19:09    [22189028]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
_Vasilisk_
Не пусто
SELECT RDB$SET_CONTEXT('USER_SESSION', 'Test1', 'UMVR!!!') FROM RDB$DATABASE


От сервера, оказывается, зависит. В четверке работает, в тройке - как у тебя.
29 авг 20, 02:41    [22189208]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12343
IBExpert
От сервера, оказывается, зависит. В четверке работает, в тройке - как у тебя.
А что в итоге? Прошлый раз я обошелся без переменных, а сейчас нужны
17 сен 20, 17:52    [22199535]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
_Vasilisk_
А что в итоге? Прошлый раз я обошелся без переменных, а сейчас нужны


Вот так работает, оказывается:
iRes = RDB$SET_CONTEXT('USER_SESSION', 'Test1', 'UMVR!!!');


Сообщение было отредактировано: 18 сен 20, 05:32
18 сен 20, 05:36    [22199710]     Ответить | Цитировать Сообщить модератору
 Re: Установка контекстных переменных  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Понятно, в общем, в чем прикол: в FB 3 вся магия происходит не собственно при выполнении селекта, а при фетче его результатов.
Эксперт их не фетчил, ибо ему не надо, если нет присвоения. Ну, теперь будет фетчить.
18 сен 20, 08:49    [22199742]     Ответить | Цитировать Сообщить модератору
Все форумы / IBExpert Ответить