Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.04;
Скачать: CL | DM;

Вниз

Проблема с триггером   Найти похожие ветки 

 
Lavrenty ©   (2007-06-26 20:27) [0]

Здраствуйте все!
Создаю триггер(для table1) в IBExpress на обновление таблицы(table2) и вдруг во время предварительной компиляции выясняется, что данного поля в этой таблице не существует(Column does not belong to referenced table...Column unknown.AP1_EN). Что-то не пойму, неужто триггер не может обновить другую таблицу?

ALTER TRIGGER ALLOC_ARRIVAL_UPD
ACTIVE AFTER UPDATE POSITION 2
AS
declare variable ap1_engl char(30);
declare variable ap2_engl char(30);
declare variable ap3_engl char(30);
begin
 select airport_name_e
       from airport
       where dfp_arrival.ap1 = airport.airport_name into ap1_engl;
 select airport_name_e
       from airport
       where dfp_arrival.ap2 = airport.airport_name into ap2_engl;
 select airport_name_e
       from airport
       where dfp_arrival.ap3 = airport.airport_name into ap3_engl;
 select airport_name_e
       from airport
       where dfp_arrival.ap001 = airport.airport_name into ap001_engl;

 update new_table
   set

/* здесь поля, с которыми всё в порядке */

       ap1 =                   new.ap1;
       ap1_en =                ap1_engl;

/* здесь несколько других строк, до которых компиляция ещё не дошла*/

end


 
turbouser ©   (2007-06-26 20:42) [1]

Ужас.

>  select airport_name_e
>        from airport
>        where dfp_arrival.ap1 /*-это что такое? Откуда?*/ = airport.airport_name into
> ap1_engl;




>
>  update new_table
>    set
>
> /* здесь поля, с которыми всё в порядке */
>
>        ap1 =                   new.ap1; /*может все-таки запятая должна быть вместо ; ?*/
>        ap1_en =                ap1_engl;


 
Lavrenty ©   (2007-06-26 20:56) [2]


> turbouser ©   (26.06.07 20:42) [1]

>        where dfp_arrival.ap1 /*-это что такое? Откуда?*/

CREATE TRIGGER ALLOC_ARRIVAL_UPD FOR DFP_ARRIVAL

>        ap1 =                   new.ap1; /*может все-таки запятая должна быть вместо ; ?*/

Правильно, Ватсон!      :-))))))  
Спасибо!


 
turbouser ©   (2007-06-26 21:00) [3]


> Lavrenty ©   (26.06.07 20:56) [2]

Должно быть или old.ap1  или new.ap1 вместо dfp_arrival.ap1


 
Lavrenty ©   (2007-06-26 21:17) [4]


> Должно быть или old.ap1  или new.ap1 вместо dfp_arrival.
> ap1

Ещё раз спасибо! Просто первый раз в жизни пишу триггер. :)

Вопрос в догонку. В тех источниках, которые использую, очень скудно описаны триггеры. Так вот, там ничего не сказано на счёт двоеточия перед переменными, объявляемые в триггере, т.е. когда их уже использую в теле триггера и даже примеры даны без оных(" :" ). Но при компиляции IBExpert ругается - нет такого поля, говорит. Ставлю двоеточие - ничего не говорит.
Выходит надо всё-таки двоеточие ставить?


 
Johnmen ©   (2007-06-26 21:23) [5]

Изучать ресурс www.ibase.ru вдоль и поперёк!


 
atruhin ©   (2007-06-27 14:20) [6]

> В тех источниках, которые использую, очень скудно описаны триггеры.

Ну дак не используй ТЕХ источников! Есть официальная документация, там все это описанно.
Чего еще нужно. 4 года работаю с IB-FB до сих пор хватало этих книг.
Interbase Language reference
Interbase programmers guide
Interbase Data definition guide
Все книги доступны в электронном виде.
PS/ Ну и кончно
> [5] Johnmen ©   (26.06.07 21:23)

С www.ibase.ru ВСЕ статьи прочитать обязательно.



Страницы: 1 вся ветка

Текущий архив: 2007.11.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
11-1175358495
Dmitriy___
2007-03-31 20:28
2007.11.04
Collapse


2-1192432990
СержК
2007-10-15 11:23
2007.11.04
Как узнать - сколько строк в документе Excel?


2-1192041920
NiGGa
2007-10-10 22:45
2007.11.04
Delphi7 и поиск ошибок


2-1192194729
PPointer
2007-10-12 17:12
2007.11.04
Текстовый файл


10-1139914636
Andy BitOff
2006-02-14 13:57
2007.11.04
Ворд. Макрос. При ворд=visible работает, а в фоне нет.