Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Guest_SPb Участник со стажем
Вступление в Клуб: 27.02.2014
|
Пт Апр 26, 2019 11:31   |
|
Полезность: Нет оценки
|
svn пишет: | )) злобный хак:
нужно обрамить вызов базового метода ифом который никогда не
выполняется |
И как это сделать?
В операции-расширении еще 5 лет назад пробовал писать:
goto Label_1;
&BASE$SETVARS;
&BASE$EXECUTE;
<<Label_1>>
или
if 1 > 2 then
&BASE$SETVARS;
&BASE$EXECUTE;
end if;
В обоих случаях при компиляции этой операции-расширении компилятор выдаёт ошибку: Отсутствует вызов расширяемой операции. |
|
![](templates/subSilver/images/spacer.gif) |
svn Профи
Вступление в Клуб: 04.02.2008
|
Пт Апр 26, 2019 15:59   |
|
Полезность: Нет оценки
|
Ого.. пофиксили значит - раньше так работало |
|
![](templates/subSilver/images/spacer.gif) |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Апр 26, 2019 16:40   |
|
Полезность: 1
|
Такая конструкция исключает любой дальнейший код из компиляции
if 1 > 2 then
влияет галка - удаление неиспользуемых участков исполняемого кода |
|
![](templates/subSilver/images/spacer.gif) |
Admin Site Admin
Вступление в Клуб: 09.06.2007
|
Сб Апр 27, 2019 08:25   |
|
Полезность: Нет оценки
|
Volod пишет: | Такая конструкция исключает любой дальнейший код из компиляции
if 1 > 2 then
влияет галка - удаление неиспользуемых участков исполняемого кода |
Скорее всего, может также сработать менее очевидное компилятору условие: ID < 1 и т.д. |
|
![](templates/subSilver/images/spacer.gif) |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Апр 29, 2019 02:46   |
|
Полезность: Нет оценки
|
svn пишет: | )) злобный хак:
нужно обрамить вызов базового метода ифом который никогда не
выполняется |
Не обрамить, а предварить
например так :
Код: |
if 1=1 then
return;
end if;
&BASE$EXECUTE;
|
|
|
![](templates/subSilver/images/spacer.gif) |
elmar1994 Участник
Вступление в Клуб: 28.05.2018
|
Вт Апр 30, 2019 08:09   |
|
Полезность: Нет оценки
|
svn пишет: | )) злобный хак:
нужно обрамить вызов базового метода ифом который никогда не
выполняется |
А как нужно обрамить? Можно подробнее? Если можно с примером. |
|
![](templates/subSilver/images/spacer.gif) |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Вт Апр 30, 2019 14:29   |
|
Полезность: Нет оценки
|
elmar1994 пишет: | А как нужно обрамить? Можно подробнее? Если можно с примером. |
Примеры есть выше.
1. Обрамить
Код: | begin
if 1>2 then
&BASE$SETVARS;
&BASE$EXECUTE;
else
Ваш_код_вместо_дистрибутива
end if;
end;
|
Проверил - как и написано выше, при компиляции выходит ошибка "Отсутствует вызов расширяемой операции"
2. Предварить
Код: | begin
if 1=1 then
Ваш_код_вместо_дистрибутива
return;
end if;
&BASE$SETVARS;
&BASE$EXECUTE;
end; |
Проверил - вроде работает) |
|
![](templates/subSilver/images/spacer.gif) |
|