生成工具-CodeSmith-享受编程的乐趣(一)

看了 http://www.cnblogs.com/Heroman/archive/2005/01/20/94806.html后我感觉有必要介绍一下CodeSmith,通常追求挑战的程序员认为设计、开发都是充满乐趣,但重复的开发相同的底层工作却是无味的,我接触过也试用过很多代码生成软件,但不是生成出的代码太复杂,就是有些方面不合自己的胃口,尤其是针对Web开发体会更是如此,通常的代码生成器生成的代码直接支持net.remoting,并且均是对dataset直接操作的,而在通常的小规模的web开发中net.reromting不一定用,而直接对dataset操作要求在session来保存临时编辑的数据,而通常对于web开发来说只要一条一条的对数据库编辑,还有,web开发通常都要有分页设计功能,而自动生成的代码也不是尽如人意。所以我一直寻求一种全方位的自定义的生成工具,哪怕初期开发复杂些,但只要开发一次,以后就可以生成合自己胃口的代码。后来一不小心发现了 codesmith终于发现他正是我想要的模板生成工具,以下就以下面这个最典型的数据库结构向大家展示一下我作的模板生成的代码,来说明codesmith能达到的功能。 另外可以在“生成工具-CodeSmith-享受编程的乐趣(三)”中可以下载我写的模板

这个数据库中是面对标准的文章发布功能的主要包括两个表一个是articleClass 另一个是article,在aritclass中是一个标准的树状结构(parentid 和id有一个自联接)而articlass中有一个对于ArticleClassID的外键引用。图中除了parentID字段以外均不能为空,这样开发起来方便些:)
Article.jpg

对于数据库的操作通常都是用多层来实现的,本篇四层为例,但目前我只作了下三层的模板,因为界面层变化因素太多通常针对不同的项目有不同的要求,大家可以通常这里介绍的方式根据具体项目来自己实现界面层。

    第一层数据库层,最通常的工作就是作一些存贮过程供下一层调用

    生成的代码如下:
    由于我通常作的开发都是基于Web的所以同时整合了分页操作,另外针对树状结构专门提供了一些贮存过程和函数。
   

None.gif -- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 the sprocs returns various error/success codes
None.gif
     --  a return value of 0 means success
None.gif
     --  a return value of 1 means a dup A_ArticleClass
None.gif
     --  a return value of 2 means A_ArticleClass doesn't exist
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif

ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_InsertDeleteUpdate    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_InsertDeleteUpdate] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_InsertDeleteUpdate ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_InsertDeleteUpdate ]
None.gif(
None.gif    @ID 
uniqueidentifier      =   null ,
None.gif    @ParentID 
uniqueidentifier      =   null ,
None.gif    @Name 
nvarchar ( 128 )     =   null ,
None.gif    @Description 
ntext      =   null ,
None.gif    @OrderBy 
int      =   null ,
None.gif    @ImgUrl 
nvarchar ( 128 )     =   null ,
None.gif    @IconUrl 
nvarchar ( 128 )     =   null ,
None.gif    @Action 
int
None.gif)    
None.gif
AS
None.gif
BEGIN
None.gif
IF  @Action  =   0
None.gif
--  Insert
None.gif
BEGIN
None.gif    
IF   EXISTS ( SELECT   *  
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif            
WHERE  (ID  =  @ID)
None.gif            )
None.gif    
RETURN   1
None.gif    
IF   EXISTS ( SELECT   *  
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif            
WHERE  (ParentID  =  @ParentID)  And  (Name  =  @Name)
None.gif            )
None.gif    
RETURN   1
None.gif    
INSERT   INTO   [ dbo ] . [ A_ArticleClass ] (ID, ParentID, Name, Description, OrderBy, ImgUrl, IconUrl)
None.gif        
VALUES  (@ID, @ParentID, @Name, @Description, @OrderBy, @ImgUrl, @IconUrl)
None.gif    
SELECT   *  
None.gif        
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif        
WHERE  (ID  =  @ID)
None.gif    
RETURN
None.gif
END
None.gif
IF  @Action  =   1
None.gif
--  Delete
None.gif
BEGIN
None.gif    
IF   EXISTS (
None.gif    
SELECT   *  
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif            
WHERE  (ID  =  @ID)
None.gif            )
None.gif    
BEGIN
None.gif        
Delete   
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif            
WHERE  (ID  =  @ID)
None.gif        
RETURN
None.gif    
END
None.gif    
ELSE
None.gif    
BEGIN
None.gif        
RETURN   2
None.gif    
END     
None.gif
END     
None.gif
IF  @Action  =   2
None.gif
--  Update
None.gif
BEGIN
None.gif    
IF   EXISTS (
None.gif        
SELECT   *  
None.gif                
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif                
WHERE  (ID  =  @ID)
None.gif            )            
None.gif    
BEGIN
None.gif        
IF   EXISTS ( SELECT   *  
None.gif                
FROM   [ dbo ] . [ A_ArticleClass ]  
None.gif                
WHERE  (ParentID  =  @ParentID)  And  (Name  =  @Name)
None.gif                
AND  ( NOT
None.gif                ((ID 
=  @ID))
None.gif                ))
None.gif        
RETURN   1
None.gif        
UPDATE   [ dbo ] . [ A_ArticleClass ]  
None.gif            
SET
None.gif            ParentID 
=  @ParentID, Name  =  @Name, Description  =  @Description, OrderBy  =  @OrderBy, ImgUrl  =  @ImgUrl, IconUrl  =  @IconUrl
None.gif            
WHERE  (ID  =  @ID)
None.gif        
RETURN         
None.gif    
END
None.gif    
ELSE
None.gif    
BEGIN
None.gif        
RETURN   2
None.gif    
END     
None.gif
END
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetPageData    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_GetPageData] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_GetPageData ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_GetPageData ]
None.gif(
None.gif    @FieldsName 
nvarchar ( 512 =   ' A.* ' ,
None.gif    @Where 
nvarchar ( 512 =   NULL ,
None.gif    @OrderBy 
nvarchar ( 128 =   NULL ,
None.gif    @RecordCount 
int   =   0  output ,
None.gif    @PageIndex 
int   =   0  output,
None.gif    @PageSize 
int   =   10
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
IF   @Where  IS   NULL
None.gif
BEGIN
None.gif    
Set  @Where  =   ''
None.gif
END
None.gif
IF   (@FieldsName  IS   NULL or  (@FieldsName  =   '' )
None.gif
BEGIN
None.gif    
Set  @FieldsName  =   ' A.* '
None.gif
END
None.gif
IF   @OrderBy  IS   NULL
None.gif
BEGIN
None.gif    
Set  @OrderBy  =   ''
None.gif
END
None.gif
None.gif
Set  @FieldsName  =   LTRIM ( RTRIM (@FieldsName))
None.gif
Set  @Where  =   LTRIM ( RTRIM (@Where))
None.gif
Set  @OrderBy  =   LTRIM ( RTRIM (@OrderBy))
None.gif
None.gif
CREATE   TABLE  #Pager 
None.gif(
None.gif    ID 
uniqueidentifier ,
None.gif    IndexID 
int   IDENTITY  ( 1 1 NOT   NULL
None.gif)
None.gif
None.gif
Declare  @SelectSql  nvarchar ( 4000 )
None.gif
None.gif
SET  @SelectSql  =   ' INSERT INTO #Pager (ID) '
None.gif                    
+   '  SELECT ID '
None.gif                    
+   '  FROM [dbo].[A_ArticleClass] '
None.gif
IF  @Where  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Where  '   +  @Where
None.gif
END
None.gif
IF  @OrderBy  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Order By  '   +  @OrderBy
None.gif
END
None.gif
None.gif
EXEC (@SelectSql)
None.gif
None.gif
SELECT  @RecordCount  =   COUNT ( * FROM  #Pager
None.gif
None.gif
IF (@RecordCount  <  (@PageSize  *  @PageIndex))
None.gif
BEGIN
None.gif    
SET  @PageIndex  =  @RecordCount  /  @PageSize
None.gif
END  
None.gif
IF (@RecordCount  =  (@PageSize  *  @PageIndex))
None.gif
BEGIN
None.gif    
SET  @PageIndex  =  @PageIndex  -   1
None.gif    
IF  @PageIndex  <   0  
None.gif    
BEGIN
None.gif        
SET  @PageIndex  =   0
None.gif    
END
None.gif
END
None.gif
None.gif
DECLARE  @PageUpperBound  int
None.gif
DECLARE  @PageLowerBound  int
None.gif
None.gif
SET  @PageLowerBound  =  @PageSize  *  @PageIndex
None.gif
SET  @PageUpperBound  =  @PageLowerBound  +  @PageSize  +   1
None.gif
None.gif
SET  @SelectSql  =   ' SELECT  ' +  @FieldsName 
None.gif                    
+   '  FROM [dbo].[A_ArticleClass] AS A INNER JOIN #Pager AS B '
None.gif                    
+   '  ON A.ID = B.ID  '
None.gif                    
+   '  WHERE '
None.gif                    
+   '  B.IndexID >  '   +   RTRIM ( LTRIM ( CAST (@PageLowerBound  AS   varchar ( 128 ))))
None.gif                    
+   '  AND B.IndexID <  '   +   RTRIM ( LTRIM ( CAST (@PageUpperBound  AS   varchar ( 128 ))))
None.gif                    
+   '  ORDER BY B.IndexID '
None.gif                    
None.gif
EXEC  (@SelectSql)
None.gif
RETURN  
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetAll    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_GetAll] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_GetAll ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_GetAll ]
None.gif(
None.gif    @FieldsName 
nvarchar ( 512 =   ' * ' ,
None.gif    @Where 
nvarchar ( 512 =   NULL ,
None.gif    @OrderBy 
nvarchar ( 128 =   NULL
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   @Where  IS   NULL
None.gif
BEGIN
None.gif    
Set  @Where  =   ''
None.gif
END
None.gif
IF   (@FieldsName  IS   NULL or  (@FieldsName  =   '' )
None.gif
BEGIN
None.gif    
Set  @FieldsName  =   ' * '
None.gif
END
None.gif
IF   @OrderBy  IS   NULL
None.gif
BEGIN
None.gif    
Set  @OrderBy  =   ''
None.gif
END
None.gif
None.gif
Set  @FieldsName  =   LTRIM ( RTRIM (@FieldsName))
None.gif
Set  @Where  =   LTRIM ( RTRIM (@Where))
None.gif
Set  @OrderBy  =   LTRIM ( RTRIM (@OrderBy))
None.gif
Declare  @SelectSql  nvarchar ( 4000 )
None.gif
None.gif
SET  @SelectSql  =   ' SELECT  '   +  @FieldsName 
None.gif                    
+   '  FROM [dbo].[A_ArticleClass] '
None.gif
IF  @Where  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Where  '   +  @Where
None.gif
END
None.gif
IF  @OrderBy  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Order By  '   +  @OrderBy
None.gif
END
None.gif
None.gif
EXEC  (@SelectSql)
None.gif
RETURN
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetLevel   Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  type  =   ' FN '   AND  name  =   ' A_ArticleClass_GetLevel ' )
None.gif
drop   function   [ dbo ] . [ A_ArticleClass_GetLevel ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   FUNCTION   [ dbo ] . [ A_ArticleClass_GetLevel ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
RETURNS   int
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
DECLARE  @ParentID  uniqueidentifier
None.gif
None.gif
DECLARE  @ReturnValue  int
None.gif
SELECT  @ReturnValue  =   - 1
None.gif
None.gif
SELECT  @ParentID  =  @ID
None.gif
None.gif
WHILE  ( not  (@ParentID  is   null ))
None.gif
BEGIN
None.gif    
SELECT  @ReturnValue  =  @ReturnValue  +   1
None.gif    
SELECT  @ParentID  =  ParentID
None.gif        
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif        
WHERE  (ID  =  @ParentID)
None.gif
END
None.gif
RETURN  @ReturnValue
None.gif
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetMaxLevel    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  type  =   ' FN '   AND  name  =   ' A_ArticleClass_GetMaxLevel ' )
None.gif
drop   function   [ dbo ] . [ A_ArticleClass_GetMaxLevel ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   FUNCTION   [ dbo ] . [ A_ArticleClass_GetMaxLevel ]
None.gif(
None.gif)
None.gif
RETURNS   int
None.gif
AS
None.gif
BEGIN     
None.gif    
DECLARE  @ReturnValue  int
None.gif    
SELECT  @ReturnValue  =   Max ( [ dbo ] .A_ArticleClass_GetLevel(ID))
None.gif        
from   [ dbo ] .A_ArticleClass
None.gif    
RETURN  @ReturnValue
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetFullName   Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  type  =   ' FN '   AND  name  =   ' A_ArticleClass_GetFullName ' )
None.gif
drop   function   [ dbo ] . [ A_ArticleClass_GetFullName ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   FUNCTION   [ dbo ] . [ A_ArticleClass_GetFullName ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
RETURNS   nvarchar ( 4000 )
None.gif
AS
None.gif
BEGIN     
None.gif    
DECLARE  @ParentID  uniqueidentifier
None.gif
None.gif    
DECLARE  @ReturnValue  nvarchar ( 4000 )
None.gif    
SELECT  @ReturnValue  =   ''
None.gif
None.gif    
SELECT  @ParentID  =  @ID
None.gif    
None.gif    
WHILE  ( not  (@ParentID  is   null ))
None.gif    
BEGIN
None.gif        
SELECT  @ReturnValue  =   ' / '   +   isnull ( [ Name ] , ' No Name ' +  @ReturnValue 
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif            
WHERE  (ID  =  @ParentID)
None.gif        
SELECT  @ParentID = ParentID
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif            
WHERE  (ID  =  @ParentID)
None.gif    
END
None.gif    
RETURN  @ReturnValue
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetTopID   Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  type  =   ' FN '   AND  name  =   ' A_ArticleClass_GetTopID ' )
None.gif
drop   function   [ dbo ] . [ A_ArticleClass_GetTopID ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   FUNCTION   [ dbo ] . [ A_ArticleClass_GetTopID ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
RETURNS   uniqueidentifier
None.gif
AS
None.gif
BEGIN     
None.gif    
DECLARE  @ParentID  uniqueidentifier
None.gif    
DECLARE  @ResultID  uniqueidentifier
None.gif    
None.gif    
SELECT  @ParentID  =  @ID
None.gif    
None.gif    
WHILE  ( not  (@ParentID  is   null ))
None.gif    
BEGIN
None.gif        
SELECT  @ResultID  =  @ParentID
None.gif        
SELECT      @ParentID = ParentID
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif            
WHERE  (ID  =  @ParentID)
None.gif    
END
None.gif    
RETURN  @ResultID 
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetFullID   Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  type  =   ' FN '   AND  name  =   ' A_ArticleClass_GetFullID ' )
None.gif
drop   function   [ dbo ] . [ A_ArticleClass_GetFullID ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   FUNCTION   [ dbo ] . [ A_ArticleClass_GetFullID ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
RETURNS   nvarchar ( 4000 )
None.gif
AS
None.gif
BEGIN     
None.gif    
DECLARE  @ParentID  uniqueidentifier
None.gif
None.gif    
DECLARE  @ReturnValue  nvarchar ( 4000 )
None.gif    
SELECT  @ReturnValue  =   ''
None.gif
None.gif    
SELECT  @ParentID  =  @ID
None.gif    
None.gif    
WHILE  ( not  (@ParentID  is   null ))
None.gif    
BEGIN
None.gif        
SELECT  @ReturnValue  =   ' / '   +   Cast ( [ ID ] as   varchar ( 128 ))  +  @ReturnValue 
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif            
WHERE  (ID  =  @ParentID)
None.gif            
None.gif        
SELECT  @ParentID = ParentID
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif            
WHERE  (ID  =  @ParentID)
None.gif    
END
None.gif    
RETURN  @ReturnValue
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetChildren    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_GetChildren] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_GetChildren ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_GetChildren ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @ID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
None.gif
CREATE   TABLE  #TmpPaths 
None.gif(
None.gif    ID 
uniqueidentifier ,
None.gif    
[ Level ]   int
None.gif)
None.gif
insert   into  #TmpPaths(ID, [ Level ] )
None.gif            
select  ID, [ dbo ] .A_ArticleClass_GetLevel(ID)
None.gif            
from   [ dbo ] . [ A_ArticleClass ]  
None.gif            
where  (ID  =  @ID)
None.gif
None.gif
while ( exists (
None.gif                
select   *   from   [ dbo ] . [ A_ArticleClass ]  
None.gif                    
where  ParentID  in  ( select  ID  from  #TmpPaths) 
None.gif                    
and  ID  not   in ( select  ID  from  #TmpPaths)
None.gif            )
None.gif        )
None.gif
begin
None.gif    
insert   into  #TmpPaths(ID, [ Level ] )
None.gif            
select  ID, [ dbo ] .A_ArticleClass_GetLevel(ID)
None.gif                
from   [ dbo ] . [ A_ArticleClass ]  
None.gif                
where  ParentID  in  ( select  ID  from  #TmpPaths) 
None.gif                
and  ID  not   in ( select  ID  from  #TmpPaths)
None.gif
end
None.gif
None.gif
delete  #TmpPaths
None.gif    
where  ID  =  @ID
None.gif
None.gif
select  A. * , B. Level
None.gif    
from   [ dbo ] . [ A_ArticleClass ]  A  inner   join  #TmpPaths B
None.gif    
on  A.ID  =  B.ID
None.gif    
order   by  B. Level   desc
None.gif
RETURN
None.gif
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetNonChildren    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_GetNonChildren] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_GetNonChildren ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_GetNonChildren ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @ID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
None.gif
CREATE   TABLE  #TmpPaths 
None.gif(
None.gif    ID 
uniqueidentifier
None.gif)
None.gif
insert   into  #TmpPaths(ID)
None.gif            
select  ID
None.gif            
from   [ dbo ] . [ A_ArticleClass ]  
None.gif            
where  (ID  =  @ID)
None.gif
None.gif
while ( exists (
None.gif                
select   *   from   [ dbo ] . [ A_ArticleClass ]  
None.gif                    
where  ParentID  in  ( select  ID  from  #TmpPaths) 
None.gif                    
and  ID  not   in ( select  ID  from  #TmpPaths)
None.gif            )
None.gif        )
None.gif
begin
None.gif    
insert   into  #TmpPaths(ID)
None.gif            
select  ID
None.gif                
from   [ dbo ] . [ A_ArticleClass ]  
None.gif                
where  ParentID  in  ( select  ID  from  #TmpPaths) 
None.gif                
and  ID  not   in ( select  ID  from  #TmpPaths)
None.gif
end
None.gif
Select   *   from   [ dbo ] . [ A_ArticleClass ]
None.gif    
where  ID  not   in  ( select  ID  from   #TmpPaths)
None.gif
RETURN
None.gif
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_GetParents    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_GetParents] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_GetParents ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_GetParents ]
None.gif(
None.gif    @ID 
uniqueidentifier
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @ID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
None.gif
CREATE   TABLE  #TmpPaths 
None.gif(
None.gif    ID 
uniqueidentifier ,
None.gif    
[ Level ]   int
None.gif)
None.gif
None.gif
DECLARE  @ParentID  uniqueidentifier
None.gif
SELECT  @ParentID  =  ParentID
None.gif    
from   [ dbo ] . [ A_ArticleClass ]
None.gif    
where  (ID  =  @ID)
None.gif
None.gif
WHILE  ( not  (@ParentID  is   null ))
None.gif
BEGIN
None.gif    
insert   into  #TmpPaths(ID, [ Level ] )
None.gif        
select  ID, [ dbo ] .A_ArticleClass_GetLevel(ID)
None.gif            
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif            
WHERE  (ID  =  @ParentID)        
None.gif
None.gif    
SELECT  @ParentID = ParentID
None.gif        
FROM   [ dbo ] . [ A_ArticleClass ]
None.gif        
WHERE  (ID  =  @ParentID)
None.gif
END
None.gif
None.gif
select  A. * , B. Level
None.gif    
from   [ dbo ] . [ A_ArticleClass ]  A  inner   join  #TmpPaths B
None.gif    
on  A.ID  =  B.ID
None.gif    
order   by  B. Level   desc
None.gif
None.gif
RETURN  
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_MoveTo    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_MoveTo] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_MoveTo ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_MoveTo ]
None.gif(
None.gif    @ID 
uniqueidentifier ,
None.gif    @NewParentID 
uniqueidentifier
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @ID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @NewParentID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
None.gif
Update   [ dbo ] .A_ArticleClass
None.gif    
Set  ParentID  =  @NewParentID
None.gif    
where  (ID  =  @ID)
None.gif
RETURN  
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_ArticleClass_CopyChildren    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_ArticleClass_CopyChildren] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_ArticleClass_CopyChildren ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_ArticleClass_CopyChildren ]
None.gif(
None.gif    @ID 
uniqueidentifier ,
None.gif    @FromID 
uniqueidentifier
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @ID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
IF   NOT   exists ( SELECT   *   FROM   [ dbo ] .A_ArticleClass  WHERE  (ID  =  @FromID))
None.gif
BEGIN
None.gif    
RETURN   2
None.gif
END
None.gif
None.gif
CREATE   TABLE  #TmpPaths 
None.gif(
None.gif    ID 
uniqueidentifier ,
None.gif    ParentID 
uniqueidentifier   null ,
None.gif    NID 
uniqueidentifier ,
None.gif    NParentID 
uniqueidentifier   null
None.gif)
None.gif
insert   into  #TmpPaths(ID,ParentID,NID, NParentID)
None.gif            
select  ID,ParentID, @ID,  null
None.gif                
from   [ dbo ] . [ A_ArticleClass ]  
None.gif                
where  (ID  =  @FromID)
None.gif
None.gif
while ( exists (
None.gif                
select   *   from   [ dbo ] . [ A_ArticleClass ]  
None.gif                    
where  ParentID  in  ( select  ID  from  #TmpPaths) 
None.gif                    
and  ID  not   in ( select  ID  from  #TmpPaths)
None.gif            )
None.gif        )
None.gif
begin
None.gif    
insert   into  #TmpPaths(ID,ParentID,NID, NParentID)
None.gif            
select  ID,ParentID,  NewID (),  null
None.gif                
from   [ dbo ] . [ A_ArticleClass ]  
None.gif                
where  ParentID  in  ( select  ID  from  #TmpPaths) 
None.gif                
and  ID  not   in ( select  ID  from  #TmpPaths)
None.gif
end
None.gif
None.gif
update  #TmpPaths
None.gif    
set  #TmpPaths.NParentID  =  b.NID
None.gif    
from  #TmpPaths, #tmpPaths b
None.gif    
where  #TmpPaths.ParentID  =  b.ID
None.gif
None.gif
delete  #TmpPaths
None.gif    
where  ID  =  @FromID
None.gif
None.gif
insert   into   [ dbo ] . [ A_ArticleClass ] (Name,Description,OrderBy,ImgUrl,IconUrl,ParentID,ID)
None.gif    
select  B.Name,B.Description,B.OrderBy,B.ImgUrl,B.IconUrl,a.NParentID, a.NID
None.gif    
from  #TmpPaths a  inner   join   [ dbo ] . [ A_ArticleClass ]  b
None.gif    
on  a.ID  =  b.ID
None.gif
RETURN  
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 the sprocs returns various error/success codes
None.gif
     --  a return value of 0 means success
None.gif
     --  a return value of 1 means a dup A_Article
None.gif
     --  a return value of 2 means A_Article doesn't exist
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif

ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_Article_InsertDeleteUpdate    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_Article_InsertDeleteUpdate] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_Article_InsertDeleteUpdate ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_Article_InsertDeleteUpdate ]
None.gif(
None.gif    @ID 
uniqueidentifier      =   null ,
None.gif    @ArticleClassID 
uniqueidentifier      =   null ,
None.gif    @Title 
nvarchar ( 256 )     =   null ,
None.gif    @Content 
ntext      =   null ,
None.gif    @IsNew 
bit      =   null ,
None.gif    @IsTop 
bit      =   null ,
None.gif    @OrderBy 
int      =   null ,
None.gif    @ImgUrl 
nvarchar ( 128 )     =   null ,
None.gif    @CreateTime 
datetime      =   null ,
None.gif    @UserName 
nvarchar ( 64 )     =   null ,
None.gif    @Author 
nvarchar ( 16 )     =   null ,
None.gif    @Keywords 
nvarchar ( 256 )     =   null ,
None.gif    @Action 
int
None.gif)    
None.gif
AS
None.gif
BEGIN
None.gif
IF  @Action  =   0
None.gif
--  Insert
None.gif
BEGIN
None.gif    
IF   EXISTS ( SELECT   *  
None.gif            
FROM   [ dbo ] . [ A_Article ]  
None.gif            
WHERE  (ID  =  @ID)
None.gif            )
None.gif    
RETURN   1
None.gif    
IF   EXISTS ( SELECT   *  
None.gif            
FROM   [ dbo ] . [ A_Article ]  
None.gif            
WHERE  (ArticleClassID  =  @ArticleClassID)  And  (Title  =  @Title)
None.gif            )
None.gif    
RETURN   1
None.gif    
INSERT   INTO   [ dbo ] . [ A_Article ] (ID, ArticleClassID, Title, Content, IsNew, IsTop, OrderBy, ImgUrl, CreateTime, UserName, Author, Keywords)
None.gif        
VALUES  (@ID, @ArticleClassID, @Title, @Content, @IsNew, @IsTop, @OrderBy, @ImgUrl, @CreateTime, @UserName, @Author, @Keywords)
None.gif    
SELECT   *  
None.gif        
FROM   [ dbo ] . [ A_Article ]  
None.gif        
WHERE  (ID  =  @ID)
None.gif    
RETURN
None.gif
END
None.gif
IF  @Action  =   1
None.gif
--  Delete
None.gif
BEGIN
None.gif    
IF   EXISTS (
None.gif    
SELECT   *  
None.gif            
FROM   [ dbo ] . [ A_Article ]  
None.gif            
WHERE  (ID  =  @ID)
None.gif            )
None.gif    
BEGIN
None.gif        
Delete   
None.gif            
FROM   [ dbo ] . [ A_Article ]  
None.gif            
WHERE  (ID  =  @ID)
None.gif        
RETURN
None.gif    
END
None.gif    
ELSE
None.gif    
BEGIN
None.gif        
RETURN   2
None.gif    
END     
None.gif
END     
None.gif
IF  @Action  =   2
None.gif
--  Update
None.gif
BEGIN
None.gif    
IF   EXISTS (
None.gif        
SELECT   *  
None.gif                
FROM   [ dbo ] . [ A_Article ]  
None.gif                
WHERE  (ID  =  @ID)
None.gif            )            
None.gif    
BEGIN
None.gif        
IF   EXISTS ( SELECT   *  
None.gif                
FROM   [ dbo ] . [ A_Article ]  
None.gif                
WHERE  (ArticleClassID  =  @ArticleClassID)  And  (Title  =  @Title)
None.gif                
AND  ( NOT
None.gif                ((ID 
=  @ID))
None.gif                ))
None.gif        
RETURN   1
None.gif        
UPDATE   [ dbo ] . [ A_Article ]  
None.gif            
SET
None.gif            ArticleClassID 
=  @ArticleClassID, Title  =  @Title, Content  =  @Content, IsNew  =  @IsNew, IsTop  =  @IsTop, OrderBy  =  @OrderBy, ImgUrl  =  @ImgUrl, CreateTime  =  @CreateTime, UserName  =  @UserName, Author  =  @Author, Keywords  =  @Keywords
None.gif            
WHERE  (ID  =  @ID)
None.gif        
RETURN         
None.gif    
END
None.gif    
ELSE
None.gif    
BEGIN
None.gif        
RETURN   2
None.gif    
END     
None.gif
END
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_Article_GetPageData    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_Article_GetPageData] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_Article_GetPageData ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_Article_GetPageData ]
None.gif(
None.gif    @FieldsName 
nvarchar ( 512 =   ' A.* ' ,
None.gif    @Where 
nvarchar ( 512 =   NULL ,
None.gif    @OrderBy 
nvarchar ( 128 =   NULL ,
None.gif    @RecordCount 
int   =   0  output ,
None.gif    @PageIndex 
int   =   0  output,
None.gif    @PageSize 
int   =   10
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
IF   @Where  IS   NULL
None.gif
BEGIN
None.gif    
Set  @Where  =   ''
None.gif
END
None.gif
IF   (@FieldsName  IS   NULL or  (@FieldsName  =   '' )
None.gif
BEGIN
None.gif    
Set  @FieldsName  =   ' A.* '
None.gif
END
None.gif
IF   @OrderBy  IS   NULL
None.gif
BEGIN
None.gif    
Set  @OrderBy  =   ''
None.gif
END
None.gif
None.gif
Set  @FieldsName  =   LTRIM ( RTRIM (@FieldsName))
None.gif
Set  @Where  =   LTRIM ( RTRIM (@Where))
None.gif
Set  @OrderBy  =   LTRIM ( RTRIM (@OrderBy))
None.gif
None.gif
CREATE   TABLE  #Pager 
None.gif(
None.gif    ID 
uniqueidentifier ,
None.gif    IndexID 
int   IDENTITY  ( 1 1 NOT   NULL
None.gif)
None.gif
None.gif
Declare  @SelectSql  nvarchar ( 4000 )
None.gif
None.gif
SET  @SelectSql  =   ' INSERT INTO #Pager (ID) '
None.gif                    
+   '  SELECT ID '
None.gif                    
+   '  FROM [dbo].[A_Article] '
None.gif
IF  @Where  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Where  '   +  @Where
None.gif
END
None.gif
IF  @OrderBy  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Order By  '   +  @OrderBy
None.gif
END
None.gif
None.gif
EXEC (@SelectSql)
None.gif
None.gif
SELECT  @RecordCount  =   COUNT ( * FROM  #Pager
None.gif
None.gif
IF (@RecordCount  <  (@PageSize  *  @PageIndex))
None.gif
BEGIN
None.gif    
SET  @PageIndex  =  @RecordCount  /  @PageSize
None.gif
END  
None.gif
IF (@RecordCount  =  (@PageSize  *  @PageIndex))
None.gif
BEGIN
None.gif    
SET  @PageIndex  =  @PageIndex  -   1
None.gif    
IF  @PageIndex  <   0  
None.gif    
BEGIN
None.gif        
SET  @PageIndex  =   0
None.gif    
END
None.gif
END
None.gif
None.gif
DECLARE  @PageUpperBound  int
None.gif
DECLARE  @PageLowerBound  int
None.gif
None.gif
SET  @PageLowerBound  =  @PageSize  *  @PageIndex
None.gif
SET  @PageUpperBound  =  @PageLowerBound  +  @PageSize  +   1
None.gif
None.gif
SET  @SelectSql  =   ' SELECT  ' +  @FieldsName 
None.gif                    
+   '  FROM [dbo].[A_Article] AS A INNER JOIN #Pager AS B '
None.gif                    
+   '  ON A.ID = B.ID  '
None.gif                    
+   '  WHERE '
None.gif                    
+   '  B.IndexID >  '   +   RTRIM ( LTRIM ( CAST (@PageLowerBound  AS   varchar ( 128 ))))
None.gif                    
+   '  AND B.IndexID <  '   +   RTRIM ( LTRIM ( CAST (@PageUpperBound  AS   varchar ( 128 ))))
None.gif                    
+   '  ORDER BY B.IndexID '
None.gif                    
None.gif
EXEC  (@SelectSql)
None.gif
RETURN  
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**/ /****** Object:  Stored Procedure [dbo].A_Article_GetAll    Script Date: 2005年1月22日 ******/
None.gif
if   exists  ( select   *   from  dbo.sysobjects  where  id  =   object_id (N ' [dbo].[A_Article_GetAll] ' and   OBJECTPROPERTY (id, N ' IsProcedure ' =   1 )
None.gif
drop   procedure   [ dbo ] . [ A_Article_GetAll ]
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  ON  
None.gif
GO
None.gif
SET  ANSI_NULLS  OFF  
None.gif
GO
None.gif
-- ----------------------------------------------------------------------------------------------------------------------
None.gif--
 Date Created: 2005年1月22日
None.gif--
 Created By:   Generated by Keyss
None.gif--
----------------------------------------------------------------------------------------------------------------------
None.gif
CREATE   PROCEDURE   [ dbo ] . [ A_Article_GetAll ]
None.gif(
None.gif    @FieldsName 
nvarchar ( 512 =   ' * ' ,
None.gif    @Where 
nvarchar ( 512 =   NULL ,
None.gif    @OrderBy 
nvarchar ( 128 =   NULL
None.gif)
None.gif
AS
None.gif
BEGIN
None.gif
None.gif
IF   @Where  IS   NULL
None.gif
BEGIN
None.gif    
Set  @Where  =   ''
None.gif
END
None.gif
IF   (@FieldsName  IS   NULL or  (@FieldsName  =   '' )
None.gif
BEGIN
None.gif    
Set  @FieldsName  =   ' * '
None.gif
END
None.gif
IF   @OrderBy  IS   NULL
None.gif
BEGIN
None.gif    
Set  @OrderBy  =   ''
None.gif
END
None.gif
None.gif
Set  @FieldsName  =   LTRIM ( RTRIM (@FieldsName))
None.gif
Set  @Where  =   LTRIM ( RTRIM (@Where))
None.gif
Set  @OrderBy  =   LTRIM ( RTRIM (@OrderBy))
None.gif
Declare  @SelectSql  nvarchar ( 4000 )
None.gif
None.gif
SET  @SelectSql  =   ' SELECT  '   +  @FieldsName 
None.gif                    
+   '  FROM [dbo].[A_Article] '
None.gif
IF  @Where  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Where  '   +  @Where
None.gif
END
None.gif
IF  @OrderBy  <> ''
None.gif
BEGIN
None.gif    
SET  @SelectSql  =  @SelectSql  +   '  Order By  '   +  @OrderBy
None.gif
END
None.gif
None.gif
EXEC  (@SelectSql)
None.gif
RETURN
None.gif
END
None.gif
GO
None.gif
None.gif
SET  QUOTED_IDENTIFIER  OFF  
None.gif
GO
None.gif
SET  ANSI_NULLS  ON  
None.gif
GO
None.gif
None.gif
None.gif








转载于:https://www.cnblogs.com/keyss/archive/2005/01/22/95701.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值