powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Informix [игнор отключен] [закрыт для гостей] / on Exception SET vSQL, vISAM, vIfxMsg
5 сообщений из 5, страница 1 из 1
on Exception SET vSQL, vISAM, vIfxMsg
    #36865648
Фотография TmpFile()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понимаю пятница, но может кто-то еще тут есть.
Возникла ситуация при которой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
drop procedure test_raise_exception;

create procedure test_raise_exception(vMsg varchar( 255 ))
returning
  varchar( 255 ) as Msg; 

define vSQL, vISAM integer;
define vIfxMsg     varchar( 255 );

return vMsg with resume;

BEGIN
  on Exception  SET vSQL, vISAM, vIfxMsg
    return vIfxMsg;
  end exception;

  raise exception - 746 ,  0 , vMsg;
END;
end procedure;

Возвращает обрезанную до 72-х символов строку, а надо именно 255
Результат:
Код: plaintext
1.
2.
3.
msg
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 
 123456789012345678901234567890123456789012345678901234567890123456789012 

IDS 11.50.FC7

Глянула в логи, установить в какой момент начало резать по ряду причин не возможно.
База переезжала с 9 -> 10 -> 11.
...
Рейтинг: 0 / 0
on Exception SET vSQL, vISAM, vIfxMsg
    #36865651
Фотография TmpFile()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызов:
Код: plaintext
1.
execute procedure test_raise_exception('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890')
...
Рейтинг: 0 / 0
on Exception SET vSQL, vISAM, vIfxMsg
    #36867420
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что не получится. Проверил на 10-ке Ваш пример, обрезается тоже. Скорее всего там структура данных varchar(72), причем у меня смутные воспоминания, что так оно и было по крайней мере с ранних версии 7-ки.
...
Рейтинг: 0 / 0
on Exception SET vSQL, vISAM, vIfxMsg
    #36867437
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки да, вот цитата из очень авторитетного дядьки.

Jonathan Leffler The limit will be 71 or 72 characters at most, based on the fact that it
gets relayed through the sqlca.sqlerrm field, which is 72 characters
long.

CDI
...
Рейтинг: 0 / 0
on Exception SET vSQL, vISAM, vIfxMsg
    #36867481
Фотография TmpFile()
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daugava,

Jonathan LefflerThe limit will be 71 or 72 characters at most, based on the fact that it
gets relayed through the sqlca.sqlerrm field, which is 72 characters
long.

Спасибо, большое, что проверили. Перед тем, как сюда писать честно читала доку и "гуглила" вопрос. Плохо искала в общем. Хоть бы в доке написали, что-ли для порядка.
Еще раз спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / on Exception SET vSQL, vISAM, vIfxMsg
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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