������� ���������
(��� ������� ����������)
�������� ���������
(��� �������� ����������)
��������
(��� �������� ��� ��������� OBJECTS_CREATEREFERENCES)
�����������
CREATE PROCEDURE OBJECTS_CREATEREFERENCES
AS
DECLARE VARIABLE OBJRELATIONID INTEGER;
DECLARE VARIABLE OBJID INTEGER;
DECLARE VARIABLE OBJCLASSID INTEGER;
DECLARE VARIABLE NEWOBJID INTEGER;
DECLARE VARIABLE OBJNAME VARCHAR(50) CHARACTER SET WIN1251;
begin
for
SELECT OBJRelations.objrelationid, OBJECTS.OBJID, OBJCLASSID, Objects.objname
FROM OBJECTS
left join OBJRelations on Objects.ObjID = ObjRelations.OBJID
where OBJRelations.ParentObjID = 13
into :objrelationid, :OBJID, :OBJCLASSID, objname
do
begin
if (:OBJCLASSID <> 3) then
delete from objrelations where objrelationid = :objrelationid;
else
begin
if (not exists (select * from objrelations
left join objects on objrelations.objid = Objects.ObjID
where objrelations.ParentObjID = :OBJID and Objects.objchildclassid = 8)) then
begin
NewObjID = GEN_ID(OBJECTIDGEN, 1);
INSERT INTO OBJECTS (OBJID, OBJCLASSID, OBJSUBCLASSID, OBJCHILDCLASSID, OBJNAME, CAPTION, DESCRIPTION, OBJRIGHTS, OBJPARAMS, OBDATA, COMMENT)
VALUES (:NewObjID, 2, 8, 8, :objname || 'ReferenceFolder', '�����������', NULL, NULL, NULL, NULL, NULL);
insert into OBJRelations (OBJID, PARENTOBJID) values (:NewObjID, :ObjID);
end
end
end
end
![]() ![]() ![]() |