Исходный код (обычный, без cartesian)
Код: Выделить всё
#component "Test"
interface Test;
table struct local tblKatSopr
(
NRec : comp,
Name : string
)
with index
(
index1 = NRec(unique)
);
table struct local tblSpSopr
(
NRec : comp,
Name : string,
cSopr : comp
)
with index
(
index1 = NRec(unique),
index2 = cSopr
);
create view as select
tblKatSopr.NRec
from
tblKatSopr,
tblSpSopr
where
((
tblKatSopr.NRec == tblSpSopr.cSopr
));
browse brMain;
table tblKatSopr;
fields
tblKatSopr.Name : [20], protect;
tblSpSopr.Name : [20], protect;
end;
handleEvent
cmInit:
{
insert into tblKatSopr set tblKatSopr.NRec := 1, Name := 'tblKatSopr1';
insert into tblKatSopr set tblKatSopr.NRec := 2, Name := 'tblKatSopr2';
insert into tblSpSopr set tblSpSopr.NRec := 1, Name := 'tblSpSopr1', cSopr := 1;
insert into tblSpSopr set tblSpSopr.NRec := 2, Name := 'tblSpSopr2', cSopr := 1;
insert into tblSpSopr set tblSpSopr.NRec := 3, Name := 'tblSpSopr3', cSopr := 1;
insert into tblSpSopr set tblSpSopr.NRec := 4, Name := 'tblSpSopr4', cSopr := 2;
insert into tblSpSopr set tblSpSopr.NRec := 5, Name := 'tblSpSopr5', cSopr := 2;
insert into tblSpSopr set tblSpSopr.NRec := 6, Name := 'tblSpSopr6', cSopr := 3;
insert into tblSpSopr set tblSpSopr.NRec := 7, Name := 'tblSpSopr7', cSopr := 3;
}
end;
end.

Добавляем атрибут cartesian
Код: Выделить всё
browse brMain;
table tblKatSopr, cartesian;
fields
tblKatSopr.Name : [20], protect;
tblSpSopr.Name : [20], protect;
end;

Теперь, самое интересное, снимаем подцепку (cartesian остается)
Код: Выделить всё
create view as select
tblKatSopr.NRec
from
tblKatSopr,
tblSpSopr;

Про корневую имелось в виду конечно корневая для view