• 分頁功能例子(根據想要幾多行記錄取部份記錄來分頁)


    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /****************************************************************   
    Name: usp_MaterialsSDSMaster_msds_SELECT_All  
       
       
    Author: JinHui   
       
    Description: SELECT All Record   
       
    Parameters:    
       
    Parameters: IN    
         @CurrentPage    目前頁數   
         @Pagesize 每頁記錄條數   
         @TotalRecords 返回的記錄總數   
            
           OUT - 1 存在   
         0 不存在   
       
    Usage:   exec usp_MaterialsSDSMaster_msds_SELECT_All '','','','','','','','','','','','1',10,'',''
       
    Calling functions:     
    System: None    Module: None   
       
    History:   
    Date      Name     Description   
    ****************************************************************/   
    CREATE PROCEDURE [dbo].[usp_MaterialsSDSMaster_msds_SELECT_All]   
       
    @msds_cItem varchar(25),    
    @msds_cSuplierNo char(10),    
    @msds_cType varchar(1),    
    @msds_cCmdy varchar(3),    
    @msds_cBrand varchar(3),    
    @msds_cManu varchar(10),    
    @msds_cColor varchar(5),    
    @msds_cGrain varchar(2),    
    @msds_cCat varchar(3),    
    @msds_cSub1 varchar(3),   
    @msds_cState char(1)   
       
    ,@iCurrentPage as int,   
    @iPagesize as int   
    --anson
    ,@cDescription as nvarchar(500)
    ,@cPo as char(13)
    --anson --end   
    AS   
       
       
    SET NOCOUNT ON   
       
       
       
    --declare    
    --@msds_cItem varchar(25),    
    --@msds_cSuplierNo char(10),    
    --@msds_cType varchar(1),    
    --@msds_cCmdy varchar(3),    
    --@msds_cBrand varchar(3),    
    --@msds_cManu varchar(10),    
    --@msds_cColor varchar(5),    
    --@msds_cGrain varchar(2),    
    --@msds_cCat varchar(3),    
    --@msds_cSub1 varchar(3),   
    --@msds_cState char(1)   
    --   
    -- ,@iCurrentPage as int,   
    -- @iPagesize as int,   
    -- @iTotalRecords as int    
    --   
    --    
    --set @msds_cItem = ''   
    --set @msds_cSuplierNo = ''   
    --set @msds_cType = ''   
    --set @msds_cCmdy = ''   
    --set @msds_cBrand = ''   
    --set @msds_cManu = ''   
    --set @msds_cColor = ''   
    --set @msds_cGrain = ''   
    --set @msds_cCat = ''   
    --set @msds_cSub1 = ''   
    --set @msds_cState= ''   
    --   
    --set @iCurrentPage =1   
    --set @iPagesize= 10   
       
       
       
       
    IF NOT OBJECT_ID('TEMPDB..#MyTemp') IS NULL DROP TABLE #MyTemp    
    IF NOT OBJECT_ID('TEMPDB..#Result_table') IS NULL DROP TABLE #Result_table   
       
    CREATE TABLE #MyTemp   
    (   
    msds_iItemID int,   
    msds_cItem varchar(25),   
    msds_cDescription nvarchar(500),   
    msds_cSuplierNo char(10),   
    msds_cSuplier nvarchar(60),   
    msds_cType varchar(1),   
    msds_cCmdy varchar(3),   
    msds_cBrand varchar(3),   
    msds_cManu varchar(10),   
    msds_cColor varchar(5),   
    msds_cGrain varchar(2),   
    msds_cCat varchar(3),   
    msds_cSub1 varchar(3),   
    msds_cCSP1 nvarchar(30),   
    msds_cCSP2 nvarchar(30),   
    msds_cCSP3 nvarchar(30),   
    msds_cCSP4 nvarchar(30),   
    msds_cCSP5 nvarchar(30),   
    msds_cCSP6 nvarchar(30),   
    msds_cCSP7 nvarchar(30),   
    msds_cCSP8 nvarchar(30),   
    msds_cCSP9 nvarchar(30),   
    msds_cCSP10 nvarchar(30),   
    msds_cCSPDesc1 nvarchar(30),   
    msds_cCSPDesc2 nvarchar(30),   
    msds_cCSPDesc3 nvarchar(30),   
    msds_cCSPDesc4 nvarchar(30),   
    msds_cCSPDesc5 nvarchar(30),   
    msds_cCSPDesc6 nvarchar(30),   
    msds_cCSPDesc7 nvarchar(30),   
    msds_cCSPDesc8 nvarchar(30),   
    msds_cCSPDesc9 nvarchar(30),   
    msds_cCSPDesc10 nvarchar(30),   
    msds_iENInfoID int ,   
    msds_iCHInfoID int ,   
    msds_cState char(1),   
    msds_cPo char(13)   
    ,msds_fModificationCount decimal(6,0)
    )   
       
       
    DECLARE @SQL NVARCHAR(4000)   
       
    DECLARE @iPageCount AS INT   
       
    DECLARE @iTotalRecords AS INT   
       
       
    SET @SQL = N'INSERT INTO #MyTemp(msds_iItemID,msds_cItem,msds_cDescription,msds_cSuplierNo,msds_cSuplier,msds_cType,msds_cCmdy,msds_cBrand,   
    msds_cManu,msds_cColor,msds_cGrain,msds_cCat,msds_cSub1,msds_cCSP1,msds_cCSP2,msds_cCSP3,msds_cCSP4,   
    msds_cCSP5,msds_cCSP6,msds_cCSP7,msds_cCSP8,msds_cCSP9,msds_cCSP10,msds_cCSPDesc1,msds_cCSPDesc2,   
    msds_cCSPDesc3,msds_cCSPDesc4,msds_cCSPDesc5,msds_cCSPDesc6,msds_cCSPDesc7,msds_cCSPDesc8,   
    msds_cCSPDesc9,msds_cCSPDesc10, msds_iENInfoID ,msds_iCHInfoID   
    ,msds_cState, msds_cPo,msds_fModificationCount) ' + CHAR(13)   
        
    SET @SQL= @SQL + 'SELECT    
    msds_iItemID,msds_cItem,msds_cDescription,msds_cSuplierNo,msds_cSuplier,msds_cType,msds_cCmdy,msds_cBrand,   
    msds_cManu,msds_cColor,msds_cGrain,msds_cCat,msds_cSub1,msds_cCSP1,msds_cCSP2,msds_cCSP3,msds_cCSP4,   
    msds_cCSP5,msds_cCSP6,msds_cCSP7,msds_cCSP8,msds_cCSP9,msds_cCSP10,msds_cCSPDesc1,msds_cCSPDesc2,   
    msds_cCSPDesc3,msds_cCSPDesc4,msds_cCSPDesc5,msds_cCSPDesc6,msds_cCSPDesc7,msds_cCSPDesc8,   
    msds_cCSPDesc9,msds_cCSPDesc10, msds_iENInfoID ,msds_iCHInfoID   
    ,msds_cState, msds_cPo,msds_fModificationCount
    FROM MaterialsSDSMaster_msds   
    WHERE 1 = 1'   
       
    IF len(@msds_cItem) <> 0 SET @SQL = @SQL + ' AND msds_cItem =''' + @msds_cItem+'''' + CHAR(13)   
    IF len(@msds_cSuplierNo) <> 0 SET @SQL = @SQL + ' AND msds_cSuplierNo =''' + @msds_cSuplierNo+'''' + CHAR(13)   
    IF len(@msds_cType) <> 0 SET @SQL = @SQL + ' AND msds_cType =''' + @msds_cType+'''' + CHAR(13)   
    IF len(@msds_cCmdy) <> 0 SET @SQL = @SQL + ' AND msds_cCmdy =''' + @msds_cCmdy+'''' + CHAR(13)   
    IF len(@msds_cBrand) <> 0 SET @SQL = @SQL + ' AND msds_cBrand =''' + @msds_cBrand+'''' + CHAR(13)   
    IF len(@msds_cManu) <> 0 SET @SQL = @SQL + ' AND msds_cManu =''' + @msds_cManu+'''' + CHAR(13)   
    IF len(@msds_cColor) <> 0 SET @SQL = @SQL + ' AND msds_cColor =''' + @msds_cColor+'''' + CHAR(13)   
    IF len(@msds_cGrain) <> 0 SET @SQL = @SQL + ' AND msds_cGrain =''' + @msds_cGrain+'''' + CHAR(13)   
    IF len(@msds_cCat) <> 0 SET @SQL = @SQL + ' AND msds_cCat =''' + @msds_cCat+'''' + CHAR(13)   
    IF len(@msds_cSub1) <> 0 SET @SQL = @SQL + ' AND msds_cSub1 =''' + @msds_cSub1+'''' + CHAR(13)  

    --anson
    IF len(@cDescription) <> 0 SET @SQL = @SQL + ' AND msds_cDescription like N''' + @cDescription+'''' + CHAR(13)   
    IF len(@cPo) <> 0 SET @SQL = @SQL + ' AND msds_cPo like ''' + rtrim(@cPo)+'''' + CHAR(13)
    --anson --end   
        
    BEGIN   
    IF @msds_cState='Y'   
       SET @SQL = @SQL + ' AND msds_cState = '''+@msds_cState+'''' + CHAR(13)   
       
    ELSE IF @msds_cState='N'   
       SET @SQL = @SQL + ' AND msds_cState = '''+@msds_cState+'''' + CHAR(13)   
       
    ELSE IF @msds_cState='K'--無資料   
       SET @SQL = @SQL + ' AND msds_cState = '''+'''' + CHAR(13)   
       
    ELSE IF @msds_cState='A' --無資料 + 未完成   
       SET @SQL = @SQL + ' AND msds_cState <> ''Y''' + CHAR(13)   
       
    END   
       
       
    --EXEC (@SQL)   
    --select * from #MyTemp   
    --print @SQL   
       
       
    EXECUTE (@SQL)   
       
       
    --最後再Select 一次是為了將自動編號數值欄位添加進來,以便做分頁功能   
    SELECT IDENTITY(int, 1, 1) as iLine,    
    msds_iItemID,msds_cItem,msds_cDescription,msds_cSuplierNo,msds_cSuplier,msds_cType,msds_cCmdy,msds_cBrand,   
    msds_cManu,msds_cColor,msds_cGrain,msds_cCat,msds_cSub1,msds_cCSP1,msds_cCSP2,msds_cCSP3,msds_cCSP4,   
    msds_cCSP5,msds_cCSP6,msds_cCSP7,msds_cCSP8,msds_cCSP9,msds_cCSP10,msds_cCSPDesc1,msds_cCSPDesc2,   
    msds_cCSPDesc3,msds_cCSPDesc4,msds_cCSPDesc5,msds_cCSPDesc6,msds_cCSPDesc7,msds_cCSPDesc8,   
    msds_cCSPDesc9,msds_cCSPDesc10, msds_iENInfoID ,msds_iCHInfoID   
    ,msds_cState, msds_cPo,msds_fModificationCount
    INTO #Result_table   
    FROM #MyTemp   
       
    SELECT @iTotalRecords = @@Rowcount   
       
       
       
    IF @iPagesize >= @iTotalRecords     
    BEGIN     
    SELECT *, @iTotalRecords AS iTotalRecords FROM #Result_table     
    END     
    ELSE     
    BEGIN     
       
    SET @iPageCount = CONVERT(DECIMAL(10,0), (@iTotalRecords * 0.1) / (@iPagesize * 0.1) )    
         
    SELECT *, @iTotalRecords AS iTotalRecords FROM #Result_table     
    WHERE iLine > (@iCurrentPage - 1) * @iPagesize AND iLine <= ((@iCurrentPage - 1) * @iPagesize + @iPagesize )     
    END     
       
    IF NOT OBJECT_ID('TEMPDB..#MyTemp') IS NULL DROP TABLE #MyTemp    
    IF NOT OBJECT_ID('TEMPDB..#Result_table') IS NULL DROP TABLE #Result_table   
    PRINT @SQL
    SET NOCOUNT OFF   
       
       
       
    --GO   
    --GRANT EXECUTE ON [dbo].[usp_MaterialsSDSMaster_msds_SELECT_All] TO [public]

  • 相关阅读:
    Spring5源码--Spring AOP使用接口方式实现 配置xml文件
    什么是 JavaConfig?
    Spring Boot 有哪些优点?
    什么是 Spring Boot?
    问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    如何实现参数级联查询
    如何开发主从报表
    如何在报表中实现算法的可挂接需求
    如何实现报表的批量打印需求
    如何实现参数和报表间的联动效果
  • 原文地址:https://www.cnblogs.com/guyuehuanhuan/p/1942288.html
Copyright © 2020-2023  润新知