Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Звязанные таблициы в InterBase

286
20 октября 2006 года
misha_turist
572 / / 28.11.2005
Доброго времени суток!

Есть два представления, основанные на двух связанных таблицах, в представлениях главное и подчинённое поле пресудствуюют.
Ну так вот, я выбераю данные из этих представлений по средствам компонента IBTable, и связываю их (MasterSourse). Связываю по правильным полям!!!
А праблема сама в том, что при любой записи главной таблицы в подчинённой ни чего не видно, хотя все данные для связывания имеются!!!!

Ни кто не сталкивался с такой проблемой!!!

P.S. Данная праблема из за конкретных представлений т.к. для других подобных представлений всё правильно работает...
547
23 октября 2006 года
Hydra
488 / / 20.06.2006
Гхм... Я конечно извиняюсь, но как было сказано - телепаты в отпуске (с)
286
23 октября 2006 года
misha_turist
572 / / 28.11.2005
)))
Я бы представил код, но для этого мне надо пол базы ватащить....
Но если надо вытащю....
286
23 октября 2006 года
misha_turist
572 / / 28.11.2005
Я похоже понял, подчинённый IBTable не хочет брать в качестве поля главного IBTable первичный ключ, даже если поля главной и подчинённой таблицы спрятаны в представление (пишет "поле ID не найдено" ID - название поля), а вот почему так происходит и как с этим бороться яне знаю...((((
286
25 октября 2006 года
misha_turist
572 / / 28.11.2005
Неужели никто помоч не может.....

Вот скрипт:
Код:
/* Domain definitions */
CREATE DOMAIN "D_CAPTION" AS VARCHAR(100);
CREATE DOMAIN "D_HINT" AS BLOB SUB_TYPE TEXT SEGMENT SIZE 80;
CREATE DOMAIN "D_ID" AS NUMERIC(10, 0) NOT NULL;
CREATE DOMAIN "D_CATEGORY" AS INTEGER
     CHECK (VALUE in (0,1,2,3,4,5,6));

/* Table: CONSTANTS, Owner: SYSDBA */

CREATE TABLE "CONSTANTS"
(
  "ID"  "D_ID",
  "NAME"    "D_CAPTION" NOT NULL,
  "TYPE"    CHAR(20) NOT NULL,
  "HINT"    "D_HINT",
CONSTRAINT "CONSTANTS_PK" PRIMARY KEY ("ID")
);
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER "CONSTANTS_BI_ID" FOR "CONSTANTS"
ACTIVE BEFORE INSERT POSITION 0
as
    BEGIN
        NEW.id = GEN_ID(CONSTANTS_id, 1);
    END
 ^

CREATE TRIGGER "CONSTANTS_AI_PE" FOR "CONSTANTS"
ACTIVE AFTER INSERT POSITION 0
AS
    BEGIN
        POST_EVENT 'INSERT_CONSTANTS';
    END
 ^

CREATE TRIGGER "CONSTANTS_AU_PE" FOR "CONSTANTS"
ACTIVE AFTER UPDATE POSITION 0
AS
    BEGIN
        POST_EVENT 'UPDATE_CONSTANTS';
    END
 ^

CREATE TRIGGER "CONSTANTS_AD_PE" FOR "CONSTANTS"
ACTIVE AFTER DELETE POSITION 0
AS
    BEGIN
        POST_EVENT 'DELETE_CONSTANTS';
    END
 ^

COMMIT WORK ^
SET TERM ;^

/* Table: TRAVELS, Owner: SYSDBA */

CREATE TABLE "TRAVELS"
(
  "ID"  "D_ID",
  "NAME"    "D_CAPTION" NOT NULL,
  "HINT"    "D_HINT",
  "END" INTEGER,
CONSTRAINT "TRAVELS_PK" PRIMARY KEY ("ID")
);
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER "TRAVELS_BI_ID" FOR "TRAVELS"
ACTIVE BEFORE INSERT POSITION 0
as
    BEGIN
        NEW.id = GEN_ID(TRAVELS_id, 1);
    END
 ^

CREATE TRIGGER "TRAVELS_AI_PE" FOR "TRAVELS"
ACTIVE AFTER INSERT POSITION 0
AS
    BEGIN
        POST_EVENT 'INSERT_TRAVELS';
    END
 ^

CREATE TRIGGER "TRAVELS_AU_PE" FOR "TRAVELS"
ACTIVE AFTER UPDATE POSITION 0
AS
    BEGIN
        POST_EVENT 'UPDATE_TRAVELS';
    END
 ^

CREATE TRIGGER "TRAVELS_AD_PE" FOR "TRAVELS"
ACTIVE AFTER DELETE POSITION 0
AS
    BEGIN
        POST_EVENT 'DELETE_TRAVELS';
    END
 ^

COMMIT WORK ^
SET TERM ;^


/* Table: GROUPS, Owner: SYSDBA */

CREATE TABLE "GROUPS"
(
  "ID"  "D_ID",
  "TRAVEL"  "D_ID",
  "NUMBER"  INTEGER,
  "NAME"    "D_CAPTION",
  "HINT"    "D_HINT",
  "CATEGORY"    "D_CATEGORY",
  "TYPE"    "D_ID",
CONSTRAINT "GROUPS_PK" PRIMARY KEY ("ID")
);
ALTER TABLE "GROUPS" ADD CONSTRAINT "GRO_CON_FK" FOREIGN KEY ("TYPE") REFERENCES CONSTANTS ("ID") ON UPDATE CASCADE;
ALTER TABLE "GROUPS" ADD CONSTRAINT "GRO_TRA_FK" FOREIGN KEY ("TRAVEL") REFERENCES TRAVELS ("ID") ON UPDATE CASCADE ON DELETE CASCADE;
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER "GROUPS_BI_ID" FOR "GROUPS"
ACTIVE BEFORE INSERT POSITION 0
as
    BEGIN
        NEW.id = GEN_ID(GROUPS_id, 1);
    END
 ^

CREATE TRIGGER "GROUPS_AI_PE" FOR "GROUPS"
ACTIVE AFTER INSERT POSITION 0
AS
    BEGIN
        POST_EVENT 'INSERT_GROUPS';
    END
 ^

CREATE TRIGGER "GROUPS_AU_PE" FOR "GROUPS"
ACTIVE AFTER UPDATE POSITION 0
AS
    BEGIN
        POST_EVENT 'UPDATE_GROUPS';
    END
 ^

CREATE TRIGGER "GROUPS_AD_PE" FOR "GROUPS"
ACTIVE AFTER DELETE POSITION 0
AS
    BEGIN
        POST_EVENT 'DELETE_GROUPS';
    END
 ^

COMMIT WORK ^
SET TERM ;^


Главная TRAVELS
Подчинённая GROUPS
286
25 октября 2006 года
misha_turist
572 / / 28.11.2005
Я ещё одну вещь понял.
Такая пакость происходит потому что, в качестве типа ключевого поля я использую домены...

Но как с ней (пакостью) бороться вот вопрос????
547
26 октября 2006 года
Hydra
488 / / 20.06.2006
Поле Trevels.ID не ключевое. Поробуй в Travels
 
Код:
"ID" "D_ID" NOT NULL UNIQUE

и в GROUPS
 
Код:
"TRAVEL""D_ID" REFERENCES TRAVELS (ID) ON DELETE CASCADE ON UPDATE CASCADE
286
26 октября 2006 года
misha_turist
572 / / 28.11.2005
[QUOTE=Hydra]Поле Trevels.ID не ключевое. Поробуй в Travels
 
Код:
"ID" "D_ID" NOT NULL UNIQUE

и в GROUPS
 
Код:
"TRAVEL""D_ID" REFERENCES TRAVELS (ID) ON DELETE CASCADE ON UPDATE CASCADE
[/QUOTE]
Вы ошибаетесь... всё это у меня уже есть
 
Код:
CREATE TABLE "TRAVELS"
(
  "ID"  "D_ID",
  "NAME"    "D_CAPTION" NOT NULL,
  "HINT"    "D_HINT",
  "END" INTEGER,
CONSTRAINT "TRAVELS_PK" PRIMARY KEY ("ID")
)

и
 
Код:
ALTER TABLE "GROUPS" ADD CONSTRAINT "GRO_TRA_FK" FOREIGN KEY ("TRAVEL") REFERENCES TRAVELS ("ID") ON UPDATE CASCADE ON DELETE CASCADE;
286
07 ноября 2006 года
misha_turist
572 / / 28.11.2005
Доброго времени суток.

Извените, что долго не писал.

Я потом пробовал и так и этак, но ни чего у меня не получилось... так дочерние данные и не отображаются...((

Может кто чего знает по этому вопросу..

Вот выложил демонстрационное приложение, может поможет...)
286
08 ноября 2006 года
misha_turist
572 / / 28.11.2005
Не ужели, ни кто не поможет...
286
09 ноября 2006 года
misha_turist
572 / / 28.11.2005
Я понял.)))

Всё дел было в типе ключевого поля главной таблицы...
Если сделать его типа "Integer", то всё работает нормально.))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог