Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 16:36   #1
Pashkaaa
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 1
По умолчанию Базы Данных. Триггеры.

в общем вот текст триггера:

Код:
create or replace trigger t_nds
before insert 
on PRODUCTS_DELIVERED
for each row
declare
  n number(5);
  d number(4,2);
  
begin   
        n:= :new.product_id;     
        select pd.nds into d from products pd
        where pd.id = n; 
                     
    :new.PRODUCT_NDS  :=d ;              
    
end;
напишите пожалуйста к нему обработчик исключительных событий при NO_DATA

куда его вставить)

Последний раз редактировалось Stilet; 10.09.2009 в 10:00.
Pashkaaa вне форума Ответить с цитированием
Старый 09.09.2009, 20:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

судя по всему это Oracle. попробовать не могу, ибо дома Оракля нет, но, судя по всему перед финальным END; попробуйте написать что-то вроде такого:
Код:
...
        exception
            when no_data_found then :new.PRODUCT_NDS = 0 ;
            when others then raise;
end;
а вообще, если не поможет, тогда можно поступить чуть-чуть по другому
Код:
    i number := 0;
...
   select count(*) into i from products pd
   where pd.id = n; 
    if i > 0 then
      select pd.nds into d from products pd
      where pd.id = n; 
      :new.PRODUCT_NDS :=d ; 
    else
      :new.PRODUCT_NDS := 0 ; 
    end if;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базы данных Valera Помощь студентам 1 13.08.2008 10:38
Базы данных Alexoid Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 22.04.2008 19:59