Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Отличие при выполнении процедуры в режиме отладки и при обычном вызове / 3 сообщений из 3, страница 1 из 1
10.09.2015, 16:48
    #39048323
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие при выполнении процедуры в режиме отладки и при обычном вызове
Доброе время суток,

одна и та же процедура в одной и той же базе при вызове в режиме отладки (IBExpert Ver.2015.6.1.1) и простом вызове ведёт себя по разному в таком месте

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
......
O_ORD_MINUS_ASL_PRO numeric(4,1),
O_ORD_MINUS_ASL_PRS numeric(18,2),
O_RES_ORD_PRS4 numeric(18,2),

......

-- в момент ошибки значения O_RES_ORD_PRS4 = 0,01   O_ORD_MINUS_ASL_PRS = 0,00   O_ORD_MINUS_ASL_PRO = 0 
if ("O_RES_ORD_PRS4"<>0) then "O_ORD_MINUS_ASL_PRO"=("O_ORD_MINUS_ASL_PRS"/"O_RES_ORD_PRS4")*100;



при обычном выполнении (select * from SEL_ALLDET_ORD_LIEF(60,'w15')) вываливается ошибка деления на ноль или ариметического переполнения, а в режиме отладки все проходит без проблем

Firebird-2.5.2.26540-0_Win32
Windows7x64

Есть какие то мысли?

Спасибо.
...
Рейтинг: 0 / 0
10.09.2015, 16:57
    #39048334
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие при выполнении процедуры в режиме отладки и при обычном вызове
Mikhail TchervonenkoЕсть какие то мысли?


Посмотри на закладке Last Statement, какой запрос выполняется на сервере для then. Видимо, там не совсем ноль, если все делится без проблем.
...
Рейтинг: 0 / 0
11.09.2015, 12:10
    #39048996
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отличие при выполнении процедуры в режиме отладки и при обычном вызове
IBExpertMikhail TchervonenkoЕсть какие то мысли?


Посмотри на закладке Last Statement, какой запрос выполняется на сервере для then. Видимо, там не совсем ноль, если все делится без проблем.
да, Вы правы
SELECT ( cast(-235.49 as numeric(18,2)) / cast(0.01 as numeric(18,2)) )*100 FROM RDB$DATABASE
= -2354900
это в numeric 4.2 не запихнуть

спасибо за наводку
непонятно только почему в режиме отладки при наведении на переменную в которой, как выяснилось, было -235.49 показывало 0.
но возможно что то напутал.

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


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