Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
2-1192389486
alikon1
2007-10-14 23:18
2007.11.04
Помогите со связанными таблицами


2-1191920499
r.o.o.t
2007-10-09 13:01
2007.11.04
Закрытие формы


15-1191570233
vajo
2007-10-05 11:43
2007.11.04
Полезный девайс


3-1182846549
azamatufa
2007-06-26 12:29
2007.11.04
Как показать процент?


15-1191477876
PPop
2007-10-04 10:04
2007.11.04
Проверить, с какой стороны лежит точка.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский