Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199] / 6 сообщений из 6, страница 1 из 1
04.01.2018, 17:38
    #39579424
Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199]
Если переменная, содержащая текст блока IBEBlock, содержит буквы нижнего регистра, то выполнить такой блок с помощью execute ibeblock "имя_переменной" не удаётся, выдаётся сообщение:
Cannot find IBEBlock: имя_переменной
Например, если в примере № 1 со страницы http://ibexpert.net/ibe/index.php?n=Doc.EXECUTEIBEBLOCK заменить имя (без кавычек) переменной MyFunc на имя (с кавычками) "MYFUNC", пример работает, а если на "MyFunc", то не работает.
...
Рейтинг: 0 / 0
04.01.2018, 19:08
    #39579458
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199]
Валерий Андреев,

"MyFunc" и "MYFUNC" - это разные переменные.
MyFunc = MYFUNC = "MYFUNC"
"MyFunc" <> MyFunc

В fb/ib точно так же
...
Рейтинг: 0 / 0
05.01.2018, 17:09
    #39579797
Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199]
Шавлюк Евгений,

о том, что MyFunc = MYFUNC = "MYFUNC", я знаю, а вариант с кавычками использовал, чтобы убедиться, что интерпретатор IBExpert допускает использование здесь кавычек и что причина не в кавычках, а в регистре. Если для хранения текста блока можно использовать обычную переменную, то почему бы она не могла называться "MyFunc" (а не MyFunc или "MYFUNC")? Если же в операторе EXECUTE IBEBLOCK <имя_переменной> используется не любая переменная, а только имеющая имя в верхнем регистре, такая особенность синтаксиса (если это не ошибка) мне непонятна и не упомянута в документации. Это, конечно, не претензия, а пожелание.
...
Рейтинг: 0 / 0
05.01.2018, 17:41
    #39579809
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199]
Валерий АндреевЕсли для хранения текста блока можно использовать обычную переменную, то почему бы она не могла называться "MyFunc" (а не MyFunc или "MYFUNC")? Если же в операторе EXECUTE IBEBLOCK <имя_переменной> используется не любая переменная, а только имеющая имя в верхнем регистре, такая особенность синтаксиса (если это не ошибка) мне непонятна и не упомянута в документации. Это, конечно, не претензия, а пожелание.

Я ничего не понял... Нет там никакой особенности. Правила в данном случае ровно те же, что и для любого другого идентификатора: идентификаторы без кавычек внутри движка приводятся к верхнему регистру, в кавычках - обрабатываются как есть.
...
Рейтинг: 0 / 0
07.01.2018, 02:18
    #39580225
Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199]
IBExpert,
не работает, например, следующий ibeblock:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
execute ibeblock
as
declare variable "MyFunc" varchar( 100 );
begin
  "MyFunc" =
  'execute ibeblock as begin ibec_ShowMessage( ''Hello World!'' ); end';
  execute ibeblock "MyFunc"; -- не работает
end



Если использовать имя переменной MYFUNC вместо MyFunc, то данный пример работает.
...
Рейтинг: 0 / 0
07.01.2018, 05:28
    #39580235
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199]
Валерий Андреевне работает, например, следующий ibeblock:


Ну вот, теперь все предельно понятно. Это баг. Исправлено.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Не работает EXECUTE IBEBLOCK с именем переменной в нижнем регистре[199] / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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