![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Грабли с хранимой процедурой! [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 однозначно имеет смысл, а гарантий что это не ваш глюк никто дать не сможет.
попробуй и все станет ясно.