国内出名的论坛的SQL存储过程脚本

这是一个国内出名的论坛的SQL存储过程脚本,是2005.04.07发布的新版本。
【请不要转贴到别处】

– 存储过程名称:dv_Dispbbs
—————————————————————————————————-

  1. CREATE PROCEDURE [dv_Dispbbs]
  2. @boardid int=1,
  3. @pagenow int=1, --当前页数
  4. @pagesize int=1, --定义每页面帖子数目
  5. @Announceid int=1,
  6. @TotalUseTable nvarchar(10) ='Dv_bbs1'
  7. with encryption
  8. AS
  9. set nocount on
  10. Select AnnounceID from [Dv_bbs1] Where BoardID=@BoardID And 
  11. RootID=@Announceid Order By AnnounceID

—————————————————————————————————-

– 存储过程名称:dv_list
—————————————————————————————————-

  1. CREATE PROCEDURE [dv_list]
  2. @boardid int=1,
  3. @pagenow int=1, --当前页数
  4. @pagesize int=1, --定义每页面帖子数目
  5. @tl int=0, --按时间段查询
  6. @topicmode int=0, --专题
  7. @totalrec int output
  8. with encryption
  9. AS
  10. set nocount on
  11. declare @int_topnum int
  12. declare @int_timenum int
  13. declare @var_times varchar(5000)
  14.  
  15. if @pagenow>1
  16. if @topicmode>0
  17. begin
  18. select @int_timenum=(@pagenow-1)*@pagesize
  19. set rowcount @int_timenum
  20. select @var_times=lastposttime from Dv_Topic where 
  21. boardID=@boardID and istop = 0 and mode=@topicmode 
  22. ORDER BY lastposttime desc
  23.  
  24. set rowcount @pagesize
  25. select TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,
  26. votetotal,lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,
  27. Mode,GetMoney,GetMoneyType,UseTools,IsSmsTopic from dv_topic where 
  28. boardID=@boardID and istop = 0 and mode=@topicmode and
  29. lastposttime < @var_times ORDER BY lastposttime desc
  30.  
  31. set nocount off
  32. return
  33. end
  34. else
  35. begin
  36. select @int_timenum=(@pagenow-1)*@pagesize
  37. set rowcount @int_timenum
  38. select @var_times=lastposttime from Dv_Topic where 
  39. boardID=@boardID and istop = 0 ORDER BY lastposttime desc
  40.  
  41. set rowcount @pagesize
  42. select TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,
  43. votetotal,lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,
  44. Mode,GetMoney,GetMoneyType,UseTools,IsSmsTopic from dv_topic 
  45. where boardID=@boardID and istop = 0 and lastposttime < @var_times 
  46. ORDER BY lastposttime desc
  47.  
  48. set nocount off
  49. return
  50. end
  51.  
  52. else
  53. if @topicmode>0
  54. begin
  55. set rowcount @pagesize
  56. select TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,
  57. votetotal,lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,
  58. Mode,GetMoney,GetMoneyType,UseTools,IsSmsTopic from Dv_topic 
  59. where boardID=@boardid and istop = 0 and mode=@topicmode
  60. ORDER BY lastposttime desc
  61. end
  62. else
  63. begin
  64. set rowcount @pagesize
  65. select TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,
  66. votetotal,lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,
  67. Mode,GetMoney,GetMoneyType,UseTools,IsSmsTopic from Dv_topic
  68. where boardID=@boardid and istop = 0 ORDER BY lastposttime desc
  69. end

—————————————————————————————————-

– 存储过程名称:Dv_loadSetup
—————————————————————————————————-

  1. CREATE PROCEDURE [Dv_loadSetup]
  2. with encryption
  3. AS
  4. Select * from [Dv_setup]

—————————————————————————————————-

– 存储过程名称:dv_toplist

—————————————————————————————————-

  1. CREATE PROCEDURE [dv_toplist]
  2. @pagenow int ,
  3. @pagesize int ,
  4. @reture_value int output,
  5. @intUserRecordCount int output
  6. with encryption
  7. as
  8. /*定义局部变量*/
  9. declare @intBeginID int
  10. declare @intEndID int
  11. declare @intPageCount int
  12. declare @intRowCount int
  13.  
  14. /*关闭计数*/
  15. set nocount on
  16.  
  17. /*求总用户数*/
  18. select @intUserRecordCount = count(*) from [dv_user]
  19. if (@intUserRecordCount = 0) --如果没有用户,则返回零
  20. set @reture_value =0
  21.  
  22. /*判断页数是否正确*/
  23. if (@pagenow - 1) * @pagesize > @intUserRecordCount
  24. set @reture_value =1
  25. --return (-1)
  26.  
  27. /*求开始userID*/
  28. set @intRowCount = (@pagenow - 1) * @pagesize + 1
  29. /*限制条数*/
  30. set rowcount @intRowCount
  31. select @intBeginID = userid from [dv_user] order by userid desc
  32.  
  33. /*结束userID*/
  34. set @intRowCount = @pagenow * @pagesize
  35. /*限制条数*/
  36. set rowcount @intRowCount
  37. select @intEndID = userid from [dv_user] order by userid desc
  38.  
  39. /*恢复系统变量*/
  40. set rowcount 0
  41. set nocount off
  42.  
  43. select username,useremail,userclass,UserIM,UserPost,JoinDate,userwealth,userid from [dv_user] where userid between @intEndID and @intBeginID order by userid desc
  44. return(@@rowcount)
  45. --select @@rowcount

—————————————————————————————————-

以下说说这个新版与上一版本的脚本区别

1、删除了原来的Dv_TSQL,增加了dv_Dispbbs过程。

2、在Dv_List过程中,有四处TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,votetotal,
lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,Mode,
GetMoney,GetMoneyType,UseTools,IsSmsTopic from
红色为新增。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值