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

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

Проблема с хранимое процедурой!!! [D7, FireBird]


Gennadiy ©   (2004-05-17 16:09:00) 

Уважаемые мастера!!! Как мне сделать чтобы в этой процедуре при выполнении условия при первой же строчки процедура прекращала свое действие и выдавала результат в O_Price, я пробовал ставить exit,но тогда процедуру никакиз данных не не возвращает?

ALTER PROCEDURE FIFO (
   IARTICUL_ID DECIMAL(18,0),
   ISKOKO_SPISAT NUMERIC(8,3))
RETURNS (
   OPRICE NUMERIC(8,2))
AS
DECLARE VARIABLE VAR_PEREM NUMERIC(8,3);
DECLARE VARIABLE VAR_UE_SHETHIK NUMERIC(8,3);
DECLARE VARIABLE VAR_PRICE_PRIHOD NUMERIC(8,2);
DECLARE VARIABLE VAR_UE_PRIHOD NUMERIC(8,3);
begin
VAR_UE_SHETHIK=0;
VAR_PEREM=0;
VAR_UE_PRIHOD=0;
VAR_PRICE_PRIHOD=0;
   for select  g.ue, g.price
   from goods g
   where g.articul_id=:iarticul_id
   order by g.datetovar
   into
       :VAR_UE_PRIHOD,
       :VAR_PRICE_PRIHOD
       do
           begin
              If (:iskoko_spisat>=:VAR_UE_SHETHIK) then
                 begin
                    oprice=VAR_UE_PRIHOD;
                 end
           end
 suspend;
end


Соловьев   (2004-05-17 16:13:00) [1]

ALTER PROCEDURE FIFO (
   IARTICUL_ID DECIMAL(18,0),
   ISKOKO_SPISAT NUMERIC(8,3))
RETURNS (
   OPRICE NUMERIC(8,2))
AS
DECLARE VARIABLE VAR_PEREM NUMERIC(8,3);
DECLARE VARIABLE VAR_UE_SHETHIK NUMERIC(8,3);
DECLARE VARIABLE VAR_PRICE_PRIHOD NUMERIC(8,2);
DECLARE VARIABLE VAR_UE_PRIHOD NUMERIC(8,3);
begin
VAR_UE_SHETHIK=0;
VAR_PEREM=0;
VAR_UE_PRIHOD=0;
VAR_PRICE_PRIHOD=0;
   for select  g.ue, g.price
   from goods g
   where g.articul_id=:iarticul_id
   order by g.datetovar
   into
       :VAR_UE_PRIHOD,
       :VAR_PRICE_PRIHOD
       do
           begin
              If (:iskoko_spisat>=:VAR_UE_SHETHIK) then
                 begin
                    oprice=VAR_UE_PRIHOD;
                    suspend;
                    exit;
                 end
           end
 suspend;/*убрать*/
end


Наверх

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