CftClub.ru
Клуб специалистов ЦФТ-Банк

Изменение дистрибутивной операции.
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
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;
В обоих случаях при компиляции этой операции-расширении компилятор выдаёт ошибку: Отсутствует вызов расширяемой операции.
svn
Профи


Вступление в Клуб: 04.02.2008
СообщениеПт Апр 26, 2019 15:59    Ответить с цитатой
Полезность: Нет оценки
Ого.. пофиксили значит - раньше так работало
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПт Апр 26, 2019 16:40    Ответить с цитатой
Полезность: 1
Такая конструкция исключает любой дальнейший код из компиляции
if 1 > 2 then
влияет галка - удаление неиспользуемых участков исполняемого кода
Admin
Site Admin


Вступление в Клуб: 09.06.2007
СообщениеСб Апр 27, 2019 08:25    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Такая конструкция исключает любой дальнейший код из компиляции
if 1 > 2 then
влияет галка - удаление неиспользуемых участков исполняемого кода


Скорее всего, может также сработать менее очевидное компилятору условие: ID < 1 и т.д.
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПн Апр 29, 2019 02:46    Ответить с цитатой
Полезность: Нет оценки
svn пишет:
)) злобный хак:

нужно обрамить вызов базового метода ифом который никогда не
выполняется


Не обрамить, а предварить Very Happy
например так :

Код:

       if 1=1 then
      return;
   end if;   

   &BASE$EXECUTE;
elmar1994
Участник


Вступление в Клуб: 28.05.2018
СообщениеВт Апр 30, 2019 08:09    Ответить с цитатой
Полезность: Нет оценки
svn пишет:
)) злобный хак:

нужно обрамить вызов базового метода ифом который никогда не
выполняется

А как нужно обрамить? Можно подробнее? Если можно с примером.
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;

Проверил - вроде работает)
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru