CREATE TABLE TEST (FIELD1 INTEGER, FIELD2 INTEGER);
CREATE VIEW TEST_VIEW AS SELECT * FROM TEST T WHERE T.FIELD2 IS NULL;
теперь посмотрите зависимости - для поля FIELD1 её нет, а для поля
FIELD2 есть
Со второй проблемой надо покумекать как тест написать, потому как то ли
после B/R, то ли после перекомпилляции зависимости опять стали
показываться.
Второй пример показывает как исчезает зависимость для таблицы TEST:
на момент выполнения первого примера у таблицы есть одна зависимость -
представление. Теперь берём и добавляем на представление триггер, например:
CREATE TRIGGER TEST_VIEW_BIU0 FOR TEST_VIEW
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN
IF (INSERTING) THEN
INSERT INTO TEST VALUES (NEW.FIELD1, NEW.FIELD2);
ELSE IF (UPDATING) THEN
UPDATE TEST SET FIELD1 = NEW.FIELD1 WHERE FIELD2 = OLD.FIELD2;
ELSE
DELETE FROM TEST WHERE FIELD2 = OLD.FIELD2;
END
закомитили.
Потом берём в эксперте коментируем тело триггера, перекомпиллируем:
CREATE TRIGGER TEST_VIEW_BIU0 FOR TEST_VIEW
ACTIVE BEFORE INSERT OR UPDATE POSITION 0
AS
BEGIN /*$$IBE$$
IF (INSERTING) THEN
INSERT INTO TEST VALUES (NEW.FIELD1, NEW.FIELD2);
ELSE IF (UPDATING) THEN
UPDATE TEST SET FIELD1 = NEW.FIELD1 WHERE FIELD2 = OLD.FIELD2;
ELSE
DELETE FROM TEST WHERE FIELD2 = OLD.FIELD2;
$$IBE$$*/ POST_EVENT '$$IBE$$';
END
зависимость всё ещё есть.
Теперь берём и экспертом перекомпиллируем вьюху, смотрим зависимости у таблицы
- нефига нету.
PS Может это и эксперта проблема - я не знаю. Решил пока сюда написать.