Главная страница
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.055 c
3-1094053694
Алексей
2004-09-01 19:48
2004.10.03
FOX,ADO и отрицательные числа


6-1091016328
Slaga
2004-07-28 16:05
2004.10.03
Список пользователей


1-1095237932
Misha123
2004-09-15 12:45
2004.10.03
ООП - корректный тип для экземпляра объекта


14-1095244104
NailMan
2004-09-15 14:28
2004.10.03
Давал ли вам чего-нибудь полезного Спам?


3-1094047680
Новенький
2004-09-01 18:08
2004.10.03
засунуть картинку в базу данных Access