Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Грабли с хранимой процедурой!   Найти похожие ветки 

 
bSava   (2004-06-07 15:13) [0]

Уважаемые мастера подскажите в чем проблемма.
Ситуация следующая, есть хранимая процедура достаточно сложная, и слегка запутанная в логике, на входные параметры несколько ID и дата, на выходе несколько чисел, но интересует в данный момент только одно. Так вот грабли в том, что когда выполняется откампеленная процедура, то выдает неправильное значение, когда-же производится отладка процедуры, то все получается правильно, складывается такое ощущение, что в откампеленной процедуре не выполняется один переход if ... then ...? но естественно в точности я этого сказать не могу...
При этот временно помогает процесс Backup/Restore, именно временно, через некоторое время начинает наблюдаться тот-же глюк... В чем может быть проблемма?
Сервер Yaffil? достаточно древней сборки.
Имеет ли смысл перейти на FB1.5, и есть ли гарантия что там этой ошибки не будет?


 
sniknik ©   (2004-06-07 15:19) [1]

судя по отзывам на форуме переходить на 1.5 однозначно имеет смысл, а гарантий что это не ваш глюк никто дать не сможет.
попробуй и все станет ясно.


 
Johnmen ©   (2004-06-07 15:20) [2]

>не выполняется один переход if ... then ...?

Какой ?


 
bSava   (2004-06-07 15:36) [3]


> Какой ?

Если это имеет значение... вот такой:

...
if (k=1) then
     begin
       if (Y>0) then   <----Подозрение что этот
           AD = AD + (LST*KNA*PPKB)/1200;
     y=y-1;
     end
...

Конечно это толко подозрение по косвенным признакам например по тому что AD меньше именно на велечену (LST*KNA*PPKB)/1200. А может и в первый не заходит, кто его знает... В отладке все прапвильно заходит :((
Могу весь текст процедуры дать, но думаю от этого легче не станет :(((


 
Johnmen ©   (2004-06-07 15:41) [4]

Откуда берутся значения k и Y ?


 
bSava ©   (2004-06-07 15:53) [5]


> Откуда берутся значения k и Y ?

Вычисляются!!!
например k принимает зачение 1 если на вход процедуры подана дата которая является концом месяца, а Y это разница месяцев между датой которая подается на вход процедуры, и датой полученной из таблицы (получение даты происходит в этой-же процедуре).
А что это имеет значение?


 
Johnmen ©   (2004-06-07 15:56) [6]

>А что это имеет значение?

Конечно. Ведь, наверное, возможны ситуации, когда k или/и Y будут попросту неопределены (null).


 
Val ©   (2004-06-07 15:56) [7]

А может и в первый не заходит, кто его знает... В отладке все прапвильно заходит :((

хм, так выполните там какой-нибудь raise и увидите, заходит или нет.


 
bSava ©   (2004-06-07 16:06) [8]

Последовал совету Val`a и выяснил что и в первый не заходит...
Это еще интересней...


 
bSava ©   (2004-06-07 16:14) [9]


> Последовал совету Val`a и выяснил что и в первый не заходит...
> Это еще интересней...

Прошу прощения наврал... ситуация стала еще интересней, все стало считаться правильно!
Теперь встает вопрос надолго-ли и в чем было дело-то?


 
Polevi ©   (2004-06-07 16:20) [10]

интересный вопрос



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
3-1086595755
galexis
2004-06-07 12:09
2004.07.04
Переход от FB 1.0 к FB 1.5


1-1087744096
Солер
2004-06-20 19:08
2004.07.04
Размер формы и разрешение экрана


4-1084096604
TCrash
2004-05-09 13:56
2004.07.04
Загрузка процессора конкретным приложением


1-1087286985
Konstantin
2004-06-15 12:09
2004.07.04
Помогите пожалуйста сохранить настройки программы


14-1087062636
Vit@ly
2004-06-12 21:50
2004.07.04
Клавиша TAB