Не работает переключаемая ссылочная целостность.
Добавлено: 16 фев 2009, 21:53
Создал таблицу:
Далее, описал переключаемую сслочную целостность:
Все создалось, все замечательно. Пытаюсь использовать, вывожу в лог:
St_KatReq.PrOrgSP = 1
St_KatReq.cStartPoint -> Name - получаю наименование организации
St_KatReq.PrOrgSP = 2
St_KatReq.cStartPoint -> Name - получаю совершенно левую организацию, но никак не наименование объекта строительства
При этом поле PrOrgSP = 2 и cStartPoint заполняются правильно, то есть ссылка именно на KatStroy. Если при описании в case поменять местами описание ссылки на KatOrg и KatStroy, то будет наоборот. То есть, будет выведен объект строительства, и не будет выведено наименование организации. Может кто-нибудь сталкивался, или эта переключаемая ссылочная целостность только на бумаге хорошо работает?
Код: Выделить всё
alter dictionary;
Create Table D_User.St_KatReq "Каталог заявок"
Component Statica
With Table_CODE = 32700
With replace
With TableOptions Branched
(
.....
,cStartPoint : comp "Ссылка на точку отправления"
,PrOrgSP : word "Признак организации (1-орг.,2-объект)
........
)
with index
(
KATREQ01 = cStartPoint
);
Код: Выделить всё
alter table STATICA::ST_KATREQ
add constraint ( foreign key KATREQ01
references
case
KATORG
primary key KATORG01
(WHEN PRORGSP = 1) restrict
,
KATSTROY
primary key KATSTROY01
(WHEN PRORGSP = 2) restrict
)
;
St_KatReq.PrOrgSP = 1
St_KatReq.cStartPoint -> Name - получаю наименование организации
St_KatReq.PrOrgSP = 2
St_KatReq.cStartPoint -> Name - получаю совершенно левую организацию, но никак не наименование объекта строительства

При этом поле PrOrgSP = 2 и cStartPoint заполняются правильно, то есть ссылка именно на KatStroy. Если при описании в case поменять местами описание ссылки на KatOrg и KatStroy, то будет наоборот. То есть, будет выведен объект строительства, и не будет выведено наименование организации. Может кто-нибудь сталкивался, или эта переключаемая ссылочная целостность только на бумаге хорошо работает?