zoukankan      html  css  js  c++  java
  • 添加类别和修改类别(无限级别分类)

    //添加类别
    CREATE   PROCEDURE DS_AddNewsType
    (
     @NewsTypeName varchar(100),
     @NewsTypeDesc varchar(500),
     @ParentID int,
     
     @MasterID int,
     @ReleaseDate datetime,
     @iLanguage tinyint
    )
    AS
    DECLARE @RecordCount as int
    SET @RecordCount=
    (
     select count(*) from DS_NewsType where NewsTypeName=@NewsTypeName
    )

    DECLARE @NewsTypeLevel as int
    SET @NewsTypeLevel=
    (
     select NewsTypeLevel from DS_NewsType where NewsTypeID=@ParentID
    )
    if @NewsTypeLevel is null
     begin
      set @NewsTypeLevel=0
     end

    if @RecordCount<=0 begin
     INSERT INTO
      DS_NewsType
      (
       NewsTypeName,
       NewsTypeDesc,
       ParentID,
       NewsTypeLevel,
       IDTree,
       
       MasterID,
       AddDate,
       ReleaseDate,
       iLanguage
      )
      VALUES
      (
       @NewsTypeName,
       @NewsTypeDesc,
       @ParentID,
       @NewsTypeLevel+1,
       '.',
       
       @MasterID,
       GetDate(),
       @ReleaseDate,
       @iLanguage
      )

     DECLARE @IDTree as varchar(100)
     SET @IDTree=
     (
      select IDTree from DS_NewsType where NewsTypeID=@ParentID
     )

     if @IDTree is null
      begin
       Update
          DS_NewsType
       Set
          IDTree = ltrim(str(@@Identity))+'.'
       WHERE
          NewsTypeID = @@Identity
      end
     else
      begin
       Update
          DS_NewsType
       Set
          IDTree = @IDTree+ltrim(str(@@Identity))+'.'
       WHERE
          NewsTypeID = @@Identity
      end

     Update
        DS_NewsType
     Set
        IsLeaf = 0
     WHERE
        NewsTypeID = @ParentID
     
    end
        
    RETURN @@Identity
    GO

    //修改类别

    CREATE    PROCEDURE DS_EditNewsType
    (
     @NewsTypeID int,
     @NewsTypeName varchar(100),
     @NewsTypeDesc varchar(500),
     @ParentID int,
     
     @MasterID int,
     @ReleaseDate datetime,
     @iLanguage tinyint
    )
    AS
    DECLARE @RecordCount as int
    SET @RecordCount=
    (
     select count(*) from DS_NewsType where NewsTypeName=@NewsTypeName and NewsTypeID!=@NewsTypeID
    )

    DECLARE @NewsTypeLevel as int
    SET @NewsTypeLevel=
    (
     select NewsTypeLevel from DS_NewsType where NewsTypeID=@ParentID
    )
    if @NewsTypeLevel is null
     begin
      set @NewsTypeLevel=0
     end

    if @RecordCount<=0 begin
     Update
        DS_NewsType
     Set
        NewsTypeName = @NewsTypeName,
        NewsTypeDesc = @NewsTypeDesc,
        ParentID = @ParentID,
        NewsTypeLevel = @NewsTypeLevel+1,
        
        MasterID = @MasterID,
        ReleaseDate = @ReleaseDate,
        iLanguage = @iLanguage
     WHERE
        NewsTypeID = @NewsTypeID
        
     DECLARE @IDTree as varchar(100)
     SET @IDTree=
     (
      select IDTree from DS_NewsType where NewsTypeID=@ParentID
     )

     if @IDTree is null
      begin
       Update
          DS_NewsType
       Set
          IDTree = ltrim(str(@NewsTypeID))+'.'
       WHERE
          NewsTypeID = @NewsTypeID
      end
     else
      begin
       Update
          DS_NewsType
       Set
          IDTree =convert(nvarchar(100),@ParentID)+'.'+ltrim(str(@NewsTypeID))+'.'
       WHERE
          NewsTypeID = @NewsTypeID
      end

     Update
        DS_NewsType
     Set
        IsLeaf = 0
     WHERE
        NewsTypeID = @ParentID
    end

    RETURN

    GO


     

  • 相关阅读:
    解决pandas_datareader的get_data_yahoo不能读取数据的问题
    python 中使用pandas_datareader 报错 ImportError: cannot import name ‘is_list_like’
    loc、iloc、ix 区别
    利用list元素求和组成某一个固定值
    测试id
    Oracle数据库从入门到精通 多表查询知识以及范例
    Oracle数据库从入门到精通 单行函数问题
    Oracle从入门到精通 限定查询和排序查询的问题
    关于Oracle中sys、system和Scott用户下的数据库连接问题
    Java学习笔记——关于位运算符的问题
  • 原文地址:https://www.cnblogs.com/zyosingan/p/1015350.html
Copyright © 2011-2022 走看看