Входные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
PARENTOBJID  | 
    INTEGER  | 
    
  | 
  
Выходные параметры
Параметр  | Тип  | Описание  | 
|---|---|---|
OBJID  | 
    INTEGER  | 
    
  | 
  
OBJPARENTID  | 
    INTEGER  | 
    
  | 
  
OBJNAME  | 
    VARCHAR(31)  | 
    
  | 
  
CAPTION  | 
    VARCHAR(51)  | 
    
  | 
  
OBJCLASSID  | 
    INTEGER  | 
    
  | 
  
OBJPARAMS  | 
    VARCHAR(255)  | 
    
  | 
  
Описание
Развращает список обэктов принадлещащих данному
Определение
CREATE PROCEDURE OBJECTS_GET_CHILD(
    PARENTOBJID INTEGER)
RETURNS (
    OBJID INTEGER,
    OBJPARENTID INTEGER,
    OBJNAME VARCHAR(31),
    CAPTION VARCHAR(51),
    OBJCLASSID INTEGER,
    OBJPARAMS VARCHAR(255))
AS
begin
  for
    select OBJECTS.OBJID, OBJECTS.OBJCLASSID, OBJECTS.OBJNAME,
        OBJECTS.CAPTION, OBJECTS.OBJPARAMS
      from OBJRELATIONS
        left join OBJECTS on (OBJECTS.OBJID = OBJRELATIONS.OBJID)
      where (OBJRELATIONS.PARENTOBJID = :PARENTOBJID)
    order by OBJRELATIONS.OBJRELATIONID
    into :OBJID, :OBJCLASSID, :OBJNAME, :CAPTION, :OBJPARAMS
  do begin
    OBJPARENTID = :PARENTOBJID;
    suspend;
    if (:OBJCLASSID = 2) then begin
      OBJPARENTID = :OBJID;
      for
        select OBJECTS_GET_CHILD.OBJID, OBJECTS_GET_CHILD.OBJCLASSID,
            OBJECTS_GET_CHILD.OBJNAME, OBJECTS_GET_CHILD.CAPTION,
            OBJECTS_GET_CHILD.OBJPARAMS
          from OBJECTS_GET_CHILD(:OBJID)
        into :OBJID, :OBJCLASSID, :OBJNAME, :CAPTION, :OBJPARAMS
      do
        if (not(:OBJID is null)) then
          suspend;
    end
  end
end
         
         
         
       |