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

Вниз

Обновление VIEW   Найти похожие ветки 

 
Виталий Панасенко   (2004-09-07 18:18) [0]

Можно-ли (и если да, то как) обновить такую вьюху:

create view docview as
select  
 doc_id,
 doc_type_id,
 doc_date,
 doc_num,
 client_id,
 doc_sum
from documents d, globsets g
where extract(month from D.doc_date)=g.org_mperiod and
extract (year from d.doc_date)=g.org_yperiod ;

Использую для доступа FIBPlus


 
Zacho ©   (2004-09-08 07:04) [1]

Можно любую. Для этого нужно создать соответствующие триггера для этого view.


 
Виталий Панасенко   (2004-09-08 09:32) [2]

Секундочку.. триггера ведь срабатывают до или после обновления таблицы ? или я ошибаюсь ? получается, нужно, в данном случае, иметь доступ к DOCUMENTS (это интересует).. Но там хранятся данные за весь период...можно (если есть) ссылку на пример самый элементарный ?..


 
Zacho ©   (2004-09-08 09:52) [3]

Нужно написать триггера BEFORE INSERT (если хочешь чтобы можно было вставлять в VIEW), BEFORE UPDATE (если хочешь чтобы можно было делать UPDATE  VIEW), BEFORE DELETE (если хочешь чтобы можно было удалять из VIEW).
Простейший пример - немного позже, сейчас у меня под рукой похоже ничего такого нет.


 
stud ©   (2004-09-08 10:02) [4]

триггеры создаются для представления, в них описываются действия которые происходят при соотв. запросах для представления


 
Виталий Панасенко   (2004-09-08 10:09) [5]

Спасибо...


 
Виталий Панасенко   (2004-09-08 10:17) [6]

Только если честно, не совсем понятно (или совсем  не понятно :-) ))


 
Zacho ©   (2004-09-08 10:19) [7]

Ну вот простейший пример. DISTINCT там нужен только для того, чтобы view стало not updatable.
Кстати, IBExpert сам может создавать триггера для view

/* View: VW_BANK */
CREATE VIEW VW_BANK(
   BIK_BANK,
   NAME_BANK,
   SHORT_NAME_BANK,
   CLASSIF_BANK,
   COMMENT_BANK)
AS
select distinct
   BIK_BANK,
   NAME_BANK,
   SHORT_NAME_BANK,
   CLASSIF_BANK,
   COMMENT_BANK
from BANK;

/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/

SET TERM ^ ;

/* Trigger: VW_BANK_BD */
CREATE TRIGGER VW_BANK_BD FOR VW_BANK
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
 DELETE FROM BANK
 WHERE (BIK_BANK = OLD.BIK_BANK);
END
^

/* Trigger: VW_BANK_BI */
CREATE TRIGGER VW_BANK_BI FOR VW_BANK
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
 INSERT INTO BANK (
   BIK_BANK,
   NAME_BANK,
   SHORT_NAME_BANK,
   CLASSIF_BANK,
   COMMENT_BANK)
 VALUES (
   NEW.BIK_BANK,
   NEW.NAME_BANK,
   NEW.SHORT_NAME_BANK,
   NEW.CLASSIF_BANK,
   NEW.COMMENT_BANK);
END
^

/* Trigger: VW_BANK_BU */
CREATE TRIGGER VW_BANK_BU FOR VW_BANK
ACTIVE BEFORE UPDATE POSITION 0
AS
BEGIN
 UPDATE BANK
 SET BIK_BANK = NEW.BIK_BANK,
     NAME_BANK = NEW.NAME_BANK,
     SHORT_NAME_BANK = NEW.SHORT_NAME_BANK,
     CLASSIF_BANK = NEW.CLASSIF_BANK,
     COMMENT_BANK = NEW.COMMENT_BANK
 WHERE (BIK_BANK = OLD.BIK_BANK);
END
^

SET TERM ; ^



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

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

Наверх




Память: 0.49 MB
Время: 0.038 c
1-1095652380
Артем К.
2004-09-20 07:53
2004.10.03
Здравствуйте. Как сделать анимированный курсор в программе?


14-1095137843
Мюмзик
2004-09-14 08:57
2004.10.03
что за сайт?


3-1094167004
O l e g
2004-09-03 03:16
2004.10.03
Переполнение стека, что это?


1-1095170605
andsoft
2004-09-14 18:03
2004.10.03
Помогите с отладчиком


14-1095279088
Гранд операнд
2004-09-16 00:11
2004.10.03
Что делать?