Гость
Форумы / Informix [игнор отключен] [закрыт для гостей] / on Exception SET vSQL, vISAM, vIfxMsg / 5 сообщений из 5, страница 1 из 1
24.09.2010, 19:40
    #36865648
TmpFile()
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
on Exception SET vSQL, vISAM, vIfxMsg
Понимаю пятница, но может кто-то еще тут есть.
Возникла ситуация при которой
Код: 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
24.09.2010, 19:41
    #36865651
TmpFile()
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
on Exception SET vSQL, vISAM, vIfxMsg
Вызов:
Код: plaintext
1.
execute procedure test_raise_exception('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890')
...
Рейтинг: 0 / 0
27.09.2010, 10:19
    #36867420
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
on Exception SET vSQL, vISAM, vIfxMsg
Думаю, что не получится. Проверил на 10-ке Ваш пример, обрезается тоже. Скорее всего там структура данных varchar(72), причем у меня смутные воспоминания, что так оно и было по крайней мере с ранних версии 7-ки.
...
Рейтинг: 0 / 0
27.09.2010, 10:28
    #36867437
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
on Exception SET vSQL, vISAM, vIfxMsg
Таки да, вот цитата из очень авторитетного дядьки.

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
27.09.2010, 10:48
    #36867481
TmpFile()
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
on Exception SET vSQL, vISAM, vIfxMsg
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
Форумы / Informix [игнор отключен] [закрыт для гостей] / on Exception SET vSQL, vISAM, vIfxMsg / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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