powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Некорректная работа оператора конкатенации
5 сообщений из 5, страница 1 из 1
Некорректная работа оператора конкатенации
    #39993139
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
EXECUTE IBEBLOCK
AS
BEGIN
  var_res = 'A';
  var_res .= IIF(TRUE, 'B', 'C');
  ibec_ShowMessage(:var_res);
END

Выводит B
С уважением, Vasilisk
...
Рейтинг: 0 / 0
Некорректная работа оператора конкатенации
    #39993235
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
Только учти, что IIF будет выполняться на сервере через SELECT IIF(...) FROM RDB$DATABASE.
И вернет оно CHAR(1) в твоем случае. А если чарсет коннекта UTF8, то получишь строку из четырех байт - 'B' плюс три пробела.
Пока не придумал, как с этим бороться.
...
Рейтинг: 0 / 0
Некорректная работа оператора конкатенации
    #39993447
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Только учти, что IIF будет выполняться на сервере через SELECT IIF(...) FROM RDB$DATABASE.
У меня там немного сложнее. Что-то типа такого
Код: sql
1.
2.
3.
4.
5.
6.
7.
EXECUTE IBEBLOCK
AS
BEGIN
  var_res = 'A';
  var_res .= IIF(RIGHT('DE', 1) = 'E', 'B', 'C');
  ibec_ShowMessage(:var_res);
END

Так, что заменить IIF на ibec_IIF() не могу
IBExpert
А если чарсет коннекта UTF8,
Пока 1251, но спасибо за предупреждение
IBExpert
получишь строку из четырех байт
А если делать так?
Код: sql
1.
SELECT CAST(IIF(...) AS VARCHAR(1000)) FROM RDB$DATABASE
...
Рейтинг: 0 / 0
Некорректная работа оператора конкатенации
    #39993484
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
А если делать так?
Код: sql
1.
SELECT CAST(IIF(...) AS VARCHAR(1000)) FROM RDB$DATABASE



Ну это ты знаешь, что там к VARCHAR нужно/можно кастить, а мне-то откуда знать?
Если бы у тебя var_res была объявлена как VARCHAR, то все нормально было бы.
...
Рейтинг: 0 / 0
Некорректная работа оператора конкатенации
    #39993512
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Если бы у тебя var_res была объявлена как VARCHAR, то все нормально было бы.
Ясно. Спасибо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Некорректная работа оператора конкатенации
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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