DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN

	            BEGIN
					    DECLARE crs CURSOR WITH RETURN FOR
					    SELECT  pgm.ProgramName,
					            par.ParaName AS ProcedureName,
					            pth.PathStr AS SourceFileName,
					            res.Name AS IncludeName,
					            occ.StartRow AS Line,
					            par.NumOfStatements AS NumOfStmts,
								pgm.ProgramID
					     FROM Occurrences AS Occurrences_1
					          INNER JOIN Occurrences occ ON Occurrences_1.PathID = occ.PathID
							  INNER JOIN Paragraphs par ON par.OccurID = occ.OccurID
					          INNER JOIN (   
										   SELECT p.ProgramID,
												 --p.Ancestor,
												 p.ProgramTypeID,
												 --p.OccurID,
												 pa.AliasName AS ProgramName
										   FROM Programs p
											  INNER JOIN ProgramAliases pa ON p.ProgramID = pa.ProgramId AND pa.AliasType = 0
										) pgm ON par.ProgramID = pgm.ProgramID
					          INNER JOIN Paths pth ON occ.PathID = pth.PathID
					          LEFT OUTER JOIN Resources res ON Occurrences_1.OccurID = res.OccurID
					     WHERE par.OrdinalNum <> 1
					           AND pgm.ProgramID IN (SELECT * FROM SESSION.numeric_param_temp)
					           AND par.IsExitPara = 0
					           AND par.ParaID NOT IN
													   (
														  SELECT  par1.ParaID
														  FROM Paragraphs par1
															  INNER JOIN StatementReference sr ON par1.ParaID = sr.ResourceID
														  WHERE sr.ResourceType = 2
													   )
					           AND Occurrences_1.ResourceType IN ( 5, 13, 60, 67)  
					           AND pgm.ProgramTypeID != 1
					     ORDER BY pgm.ProgramName,
						          pgm.ProgramID,
					              res.Name,
					              par.ParaName;
					   
					   
				        OPEN crs;
				
                END;
END ss	






