Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Грабли с хранимой процедурой! [D6]


bSava ©   (2004-06-07 15:13:00) 

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


Polevi   (2004-06-07 16:20:00) [1]

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


bSava   (2004-06-07 16:14:00) [2]


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

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


bSava   (2004-06-07 16:06:00) [3]

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


Johnmen   (2004-06-07 15:56:00) [4]

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

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


Val   (2004-06-07 15:56:00) [5]

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

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


bSava   (2004-06-07 15:53:00) [6]


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

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


Johnmen   (2004-06-07 15:41:00) [7]

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


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


> Какой ?

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

...
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:20:00) [9]

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

Какой ?


sniknik   (2004-06-07 15:19:00) [10]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо