zoukankan      html  css  js  c++  java
  • aspnet_Profile_GetProfiles

    ALTER  PROCEDURE dbo.aspnet_Profile_GetProfiles
        
    @ApplicationName        NVARCHAR(256),
        
    @ProfileAuthOptions     INT,
        
    @PageIndex              INT,
        
    @PageSize               INT,
        
    @TimeZoneAdjustment     INT,
        
    @UserNameToMatch        NVARCHAR(256= NULL,
        
    @InactiveSinceDate      DATETIME      = NULL
    AS
    BEGIN
        
    DECLARE @ApplicationId UNIQUEIDENTIFIER
        
    SELECT  @ApplicationId = NULL
        
    SELECT  @ApplicationId = ApplicationId FROM aspnet_Applications WHERE LOWER(@ApplicationName= LoweredApplicationName
        
    -----如果@ApplicationId为空直接返回,好象少了 SELECT 0 这一步,所以也就没用 BEGIN 和 END 
        IF (@ApplicationId IS NULL)
            
    RETURN

        
    IF ((NOT(@InactiveSinceDate IS NULL)) AND (@InactiveSinceDate > CONVERT(DATETIME'17540101'112)) AND  (@InactiveSinceDate < CONVERT(DATETIME'99980101'112)))
            
    SELECT @InactiveSinceDate = DATEADD(n, -@TimeZoneAdjustment@InactiveSinceDate)
        
    --如果@InactiveSinceDate不为空且在一定范围内,则为@InactiveSinceDate设置新的值
        -- Set the page bounds 
        ---设置页面绑定
        DECLARE @PageLowerBound INT
        
    DECLARE @PageUpperBound INT
        
    DECLARE @TotalRecords   INT
        
    SET @PageLowerBound = @PageSize * @PageIndex
        
    SET @PageUpperBound = @PageSize - 1 + @PageLowerBound
        
    /*即显示数据的时候只显示从@PageLowerBound开始到@PageUpperBound的记录数*/
        
    -- Create a temp table TO store the select results
        --创建一个临时表来保存数据,自动增长的列是为了分页而设计的
        CREATE TABLE #PageIndexForUsers
        (
            IndexId 
    int IDENTITY (01NOT NULL,
            UserId 
    UNIQUEIDENTIFIER
        )

        
    -- Insert into our temp table
        ---为临时表插入数据
        INSERT INTO #PageIndexForUsers (UserId)
            
    SELECT  u.UserId
            
    FROM    dbo.aspnet_Users u, dbo.aspnet_Profile p
            
    WHERE   ApplicationId = @ApplicationId
                
    AND u.UserId = p.UserId
                
    AND (@InactiveSinceDate IS NULL OR LastActivityDate <= @InactiveSinceDate)
                
    AND (     (@ProfileAuthOptions = 2)
                       
    OR (@ProfileAuthOptions = 0 AND IsAnonymous = 1)
                       
    OR (@ProfileAuthOptions = 1 AND IsAnonymous = 0)
                     )
                
    AND (@UserNameToMatch IS NULL OR LoweredUserName LIKE LOWER(@UserNameToMatch))
            
    ORDER BY UserName
               
    /*现在没搞清楚的是这些条件,不明白条件的意思*/          


        
    SELECT  u.UserName, u.IsAnonymous, u.LastActivityDate, p.LastUpdatedDate,
                
    DATALENGTH(p.PropertyNames) + DATALENGTH(p.PropertyValuesString) + DATALENGTH(p.PropertyValuesBinary)
                
    /*DATALENGTH 返回任何表达式所占用的字节数。*/
        
    FROM    dbo.aspnet_Users u, dbo.aspnet_Profile p, #PageIndexForUsers i
        
    WHERE   u.UserId = p.UserId AND p.UserId = i.UserId AND i.IndexId >= @PageLowerBound AND i.IndexId <= @PageUpperBound

        
    SELECT COUNT(*)
        
    FROM   #PageIndexForUsers  ---计算临时表的记录数
        
        
    DROP TABLE #PageIndexForUsers  --删除临时表
        /*既然不用话为什么还要弄一个分页的出来,不知道干什么用来着,不过前面有这个参数那就肯定有用了*/
    END
  • 相关阅读:
    Unity3D保护资源管理文件的AssetBundle包加密!
    untiy Kinect SDK 的默认BUG 修改方法
    Android 插件扩展系列之 封装与应用
    datagridview 单击单元格获取单元格的内容
    winform 显示动态图片 Gif
    Unity 漫游相机脚本
    Unity3D教程:c#脚本yield的用法
    Unity 脚本实现CoverFlow效果
    删除 treeview Node节点 循环删除子节点 存储过程
    Unity 怪物AI
  • 原文地址:https://www.cnblogs.com/ruanbl/p/491892.html
Copyright © 2011-2022 走看看