powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Существование глобальной переменной
4 сообщений из 4, страница 1 из 1
Существование глобальной переменной
    #36459257
luchik_5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в Формсах можно проверить существование глобальной переменной (например необходимо проверить есть ли переменная :global.rec)?
...
Рейтинг: 0 / 0
Существование глобальной переменной
    #36461813
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
luchik_5,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare
 l_var varchar( 2000 );
begin
 s := :global.rec;
 message('Есть переменная!');
exception
when --нету формса под рукой, какое
then 
 message('Нет переменной');
end;

Мне вообще-то всегда default_value хватало.
...
Рейтинг: 0 / 0
Существование глобальной переменной
    #36463674
Всегда!!!!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrK,

Предложенный вариант на PL/SQL точно не поможет.
И дело даже не в том, что переменная s не определена.

Дело в том, что при обращении к несуществующей глобальной переменной будет выдана ошибка FRM-40815: Variable GLOBAL.%s does not exist и plsql блок продолжит работу со следующей строки!
А следующая строка: message('Есть переменная!');

Конечно, FRM-40815 можно перехватить в триггере ON-ERROR,
но правильный ответ это использование DEFAULT_VALUE.
Что-то вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
DEFAULT_VALUE('NULL', 'GLOBAL.my_global_var');
IF :GLOBAL.my_global_var = 'NULL'
THEN
   MESSAGE('my_global_var не определена');
ELSE
   MESSAGE('my_global_var: '||:GLOBAL.my_global_var);
END IF;
...
Рейтинг: 0 / 0
Существование глобальной переменной
    #36464672
AndrK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всегда!!!!!AndrK,

Предложенный вариант на PL/SQL точно не поможет.
И дело даже не в том, что переменная s не определена.

Дело в том, что при обращении к несуществующей глобальной переменной будет выдана ошибка FRM-40815: Variable GLOBAL.%s does not exist и plsql блок продолжит работу со следующей строки!
А следующая строка: message('Есть переменная!');

Конечно, FRM-40815 можно перехватить в триггере ON-ERROR,
но правильный ответ это использование DEFAULT_VALUE.
Что-то вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
DEFAULT_VALUE('NULL', 'GLOBAL.my_global_var');
IF :GLOBAL.my_global_var = 'NULL'
THEN
   MESSAGE('my_global_var не определена');
ELSE
   MESSAGE('my_global_var: '||:GLOBAL.my_global_var);
END IF;

Признаю свою ошибку.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Существование глобальной переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]