DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
    DECLARE crs CURSOR WITH RETURN FOR

       SELECT 5 AS resType,
			 p.programid AS dbId,
			 cvr.version AS version,
			 pa.AliasName AS resName,
			 pth.PathStr as resPath,
			 CAST(p.ProgramTypeID AS VARCHAR(20)) AS progType,
			 CAST(NULL AS VARCHAR(256)) AS qualifier
	   FROM Programs p
	   		 INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId and pa.AliasType = 0
			 INNER JOIN Occurrences  occ ON occ.OccurId = p.OccurID AND occ.ResourceType = 5
			 INNER JOIN Paths pth ON pth.PathID = occ.PathID
			 INNER JOIN VC_ContainerVSResources cvr ON cvr.idresource = p.programid
											 AND cvr.ResourceTypeID = 5																					
	UNION

        SELECT 22 as resType,
			   jj.JobId as dbId,
			   cvr.version as version,
			   jj.JobName as resName ,
			   jp.ResourceFilePath as resPath,
			   '' as progType,
			    CAST(NULL AS VARCHAR(256)) AS qualifier
		FROM JCLJob jj
			INNER JOIN JCLPosition jp ON jp.PositionID=jj.PositionID
			INNER JOIN VC_ContainerVsResources cvr ON cvr.IDResource=jj.JobID AND cvr.ResourceTypeID = 22
		WHERE jj.BuildStatus = 1

 UNION
   -- sqltable
     SELECT 1 as resType,
			 tt.SqlTableId as dbId,
			 -100 as version,
			 tt.TableName as resName,
			 CAST(NULL AS VARCHAR(256)) as resPath,
			 '' as progType,
                         CAST(NULL AS VARCHAR(256)) AS qualifier
    FROM  SqlTables tt
UNION
  -- sqlfield
    SELECT 187 as resType,
			 f.SqlFieldID as dbId,
			 -100 as version,
			 f.FieldName as resName,
			 CAST(NULL AS VARCHAR(256)) as resPath,
			 '' as progType,
             t.TableName as qualifier
   FROM  SqlFields f INNER JOIN SqlTables t ON t.SqlTableID = f.SqlTableID
UNION
  --  bms screen
    SELECT 6 as resType,
			 bs.BMSId as dbId,
			 -100 as version,
			 bs.BMSName as resName,
			 CAST(NULL AS VARCHAR(256)) as resPath,
			 '' as progType,
                         bm.BMSName as qualifier
FROM  BMS bs INNER JOIN BMS bm ON bm.IsMapSet = 0 and bm.AncestorId = bs.BMSId
UNION
  -- imsTransaction
      SELECT 20 as resType,
			 ResourceID as dbId,
			 -100 as version,
			 Name as resName,
			 CAST(NULL AS VARCHAR(256)) as resPath,
			 '' as progType,
                         CAST(NULL AS VARCHAR(256)) AS qualifier
    FROM  Resources    where ResourceType = 20
UNION
   --ims db segment
    SELECT 209 as resType,
			 IMSDBSegments.SegmentId as dbId,
			 -100 as version,
			 IMSDBSegments.SegmentName as resName,
			 CAST(NULL AS VARCHAR(256)) as resPath,
			 '' as progType,
                         IMSDBInfo.DBName as qualifier
FROM IMSDBSegments INNER JOIN IMSDBInfo ON IMSDBInfo.DBId = IMSDBSegments.DBId
UNION
      --ims message
     SELECT 212 as resType,
			 IMSMapIOFormat.Id as dbId,
			 -100 as version,
			 IMSMapIOFormat.Name as resName,
			 CAST(NULL AS VARCHAR(256)) as resPath,
			 '' as progType,
                         IMSMaps.MapName as qualifier
 FROM IMSMapIOFormat INNER JOIN IMSMaps ON IMSMaps.MapId = IMSMapIOFormat.IMSMapId
	ORDER BY resType, dbId ;
	
	OPEN crs;	
END 											