Stored Procedures [dbo].[Forum_Post_GetAll]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@ThreadIDint4
@PageIndexint4
@PageSizeint4
@Descendingbit1
@PortalIDint4
SQL Script


CREATE PROCEDURE dbo.[Forum_Post_GetAll]
    (
      @ThreadID INT,
      @PageIndex INT,
      @PageSize INT,
      @Descending BIT,
      @PortalID INT
    )
AS
    BEGIN
        DECLARE @RowStart INT
        DECLARE @RowEnd INT
                
        SET @RowStart = @PageSize * @PageIndex + 1 ;
        SET @RowEnd = @RowStart + @PageSize - 1 ;
        
        IF @Descending = 1
            BEGIN
                SELECT  *
                FROM    ( SELECT    PostID,
                                    ParentPostID,
                                    UserID,
                                    RemoteAddr,
                                    [Subject],
                                    Body,
                                    CreatedDate,
                                    ThreadID,
                                    UpdatedDate,
                                    UpdatedByUser,
                                    IsApproved,
                                    IsLocked,
                                    IsClosed,
                                    DateApproved,
                                    PostReported,
                                    Addressed,
                                    ParseInfo,
                                    ROW_NUMBER() OVER ( ORDER BY CreatedDate DESC ) AS RowNumber,
                                    ( SELECT    COUNT(PostID)
                                      FROM      dbo.Forum_Posts
                                      WHERE     ThreadID = @ThreadID
                                    ) AS TotalRecords
                          FROM      dbo.Forum_Posts P
                          WHERE     ThreadID = @ThreadID
                                    AND P.IsApproved = 1
                        ) AS PostInfo
                WHERE   RowNumber >= @RowStart
                        AND RowNumber <= @RowEnd
            END
        ELSE
            BEGIN    
                SELECT  *
                FROM    ( SELECT    PostID,
                                    ParentPostID,
                                    UserID,
                                    RemoteAddr,
                                    [Subject],
                                    Body,
                                    CreatedDate,
                                    ThreadID,
                                    UpdatedDate,
                                    UpdatedByUser,
                                    IsApproved,
                                    IsLocked,
                                    IsClosed,
                                    DateApproved,
                                    PostReported,
                                    Addressed,
                                    ParseInfo,
                                    ROW_NUMBER() OVER ( ORDER BY CreatedDate ASC ) AS RowNumber,
                                    ( SELECT    COUNT(PostID)
                                      FROM      dbo.Forum_Posts
                                      WHERE     ThreadID = @ThreadID
                                    ) AS TotalRecords
                          FROM      dbo.Forum_Posts P
                          WHERE     ThreadID = @ThreadID
                                    AND P.IsApproved = 1
                        ) AS PostInfo
                WHERE   RowNumber >= @RowStart
                        AND RowNumber <= @RowEnd
            END
    END

GO
Uses