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

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

Странно необъяснимое поведение хранимой процедуры в Фаерберде ...


Страницы:   1 2 3

Rule ©   (2005-02-17 12:23:00) 

При выполнении хранимой процедуры выдает неправильные результаты, а в режиме отладки выдает правильные результаты, до этого встречался с такой проблеммой ... и решил её путем преставления срок кода, причем это переставление логики никакой не меняло вообще ... опять столкнулся с такойже проблеммой ... что делать, чего посоветуете ?


Rule   (2005-02-17 12:26:00) [41]

тело процедуры для полной информации
CREATE PROCEDURE SHOWPRICEFUEL (
   NPRICE INTEGER)
RETURNS (
   IDFUEL INTEGER,
   NAME VARCHAR(20),
   PRICE NUMERIC(15,2),
   ADATIME TIMESTAMP)
AS
DECLARE VARIABLE DISCOUNTTYPE SMALLINT;
DECLARE VARIABLE PRICE0 NUMERIC(15,2);
begin
for select id, name from fuel
   into :idfuel, :name
   do
   begin
       /*забираем стеллогвскую цену и дату активации*/
       select a.price, a.adatime, a.discounttype
           from pricefuel a
           where a.id_fuel=:idfuel
           and a.nprice=:nprice
           and a.adatime=(select max(b.adatime) from pricefuel b
                           where b.id_fuel=:idfuel and b.nprice=:nprice)
           into :PRICE, :adatime, :DISCOUNTTYPE;

       if (Discounttype!=0) then
       begin
           select a.price
               from pricefuel a
               where a.id_fuel=:idfuel
               and a.nprice=0
               and a.adatime=(select max(b.adatime) from pricefuel b
                               where b.id_fuel=:idfuel and b.nprice=0)
               into :PRICE0;
           /*тепеть в зависмости от скидки вычесляем цену ...*/
           if (Discounttype=2) then
               PRICE=price0-price;
           if (Discounttype=1) then
               PRICE=price0-(price0*price/100);

       end
       suspend;
   end
end


Страницы:   1 2 3

Наверх

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