/* 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 ;^
Звязанные таблициы в InterBase
Есть два представления, основанные на двух связанных таблицах, в представлениях главное и подчинённое поле пресудствуюют.
Ну так вот, я выбераю данные из этих представлений по средствам компонента IBTable, и связываю их (MasterSourse). Связываю по правильным полям!!!
А праблема сама в том, что при любой записи главной таблицы в подчинённой ни чего не видно, хотя все данные для связывания имеются!!!!
Ни кто не сталкивался с такой проблемой!!!
P.S. Данная праблема из за конкретных представлений т.к. для других подобных представлений всё правильно работает...
Гхм... Я конечно извиняюсь, но как было сказано - телепаты в отпуске (с)
Я бы представил код, но для этого мне надо пол базы ватащить....
Но если надо вытащю....
Я похоже понял, подчинённый IBTable не хочет брать в качестве поля главного IBTable первичный ключ, даже если поля главной и подчинённой таблицы спрятаны в представление (пишет "поле ID не найдено" ID - название поля), а вот почему так происходит и как с этим бороться яне знаю...((((
Неужели никто помоч не может.....
Такая пакость происходит потому что, в качестве типа ключевого поля я использую домены...
Но как с ней (пакостью) бороться вот вопрос????
Код:
"ID" "D_ID" NOT NULL UNIQUE
и в GROUPS
Код:
"TRAVEL""D_ID" REFERENCES TRAVELS (ID) ON DELETE CASCADE ON UPDATE CASCADE
Код:
"ID" "D_ID" NOT NULL UNIQUE
и в GROUPS
Код:
"TRAVEL""D_ID" REFERENCES TRAVELS (ID) ON DELETE CASCADE ON UPDATE CASCADE
Вы ошибаетесь... всё это у меня уже есть
Код:
CREATE TABLE "TRAVELS"
(
"ID" "D_ID",
"NAME" "D_CAPTION" NOT NULL,
"HINT" "D_HINT",
"END" INTEGER,
CONSTRAINT "TRAVELS_PK" PRIMARY KEY ("ID")
)
(
"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;
Извените, что долго не писал.
Я потом пробовал и так и этак, но ни чего у меня не получилось... так дочерние данные и не отображаются...((
Может кто чего знает по этому вопросу..
Вот выложил демонстрационное приложение, может поможет...)
Не ужели, ни кто не поможет...
Всё дел было в типе ключевого поля главной таблицы...
Если сделать его типа "Integer", то всё работает нормально.))