(
  IN p_fieldID INTEGER,
  IN p_direction SMALLINT
)
DYNAMIC RESULT SETS 1
LANGUAGE SQL
ss: BEGIN
            DECLARE v_fieldID INTEGER;
            DECLARE v_direction SMALLINT; 
            
            SET v_fieldID =  p_fieldID;            
            SET v_direction = p_direction; -- 1 -> only forward; 2 -> only backward; 0 -> both directions
            

	            BEGIN
					    DECLARE crs CURSOR WITH RETURN FOR
					    SELECT  *
					    FROM
					         (
					          SELECT 
							            v.VarID,
							            sf.SqlFieldID,
							            s.Description,
							            os.startrow,
							            pth.PathStr,
							            pt.ProgramType
							     FROM Variables v
							          INNER JOIN StatementReferenceEX srx ON v.VarID = srx.WrittenResourceID
							          INNER JOIN SqlFields sf ON sf.SqlFieldID = srx.ReadResourceID
							          INNER JOIN SqlTables st ON st.SqlTableID = sf.SqlTableID
							          INNER JOIN OccurrencesStmt os ON srx.OccurID = os.OccurID
							          INNER JOIN Statements s ON os.StatementType = s.StatementType
							          INNER JOIN Paths pth ON pth.PathID = os.PathID
							          LEFT OUTER JOIN ProgramTypes pt ON pt.ProgramTypeID = os.SourceType
							     WHERE (0 = v_direction OR 1 = v_direction)
							     		AND srx.ReadResourceType = 187
							            AND sf.SqlFieldID = v_fieldID
							            AND v.VarID IN (SELECT * FROM SESSION.numeric_param_temp)

							     UNION
							
							     SELECT 
							            v.VarID,
							            sf.SqlFieldID,
							            s.Description,
							            os.startrow,
							            pth.PathStr,
							            pt.ProgramType
							     FROM StatementReferenceEX srx
							          INNER JOIN SqlFields sf ON srx.WrittenResourceID = sf.SqlFieldID
							          INNER JOIN Variables v ON srx.ReadResourceID = v.VarID
							          INNER JOIN OccurrencesStmt os ON srx.OccurID = os.OccurID
							          INNER JOIN Statements s ON os.StatementType = s.StatementType
							          INNER JOIN SqlTables st ON sf.SqlTableID = st.SqlTableID
							          INNER JOIN Paths pth ON pth.PathID = os.PathID
							          LEFT OUTER JOIN ProgramTypes pt ON pt.ProgramTypeID = os.SourceType
							     WHERE (0 = v_direction OR 2 = v_direction)
							     		AND srx.WrittenResourceType = 187
							            AND sf.SqlFieldID = v_fieldID
							            AND v.VarID IN (SELECT * FROM SESSION.numeric_param_temp)

					         )src
					     ORDER BY  src.VarID,
                                   src.SqlFieldID,
                                   src.startrow;    
					           
							

				        OPEN crs;
				
                END;
END ss	



