upgradeprocedure_2000.sql
上传用户:wenllgg125
上传日期:2020-04-09
资源大小:7277k
文件大小:179k
源码类别:

SCSI/ASPI

开发平台:

Others

  1. IF OBJECT_ID('dnt_checkemailandsecques','P') IS NOT NULL
  2. DROP PROC dnt_checkemailandsecques
  3. GO
  4. CREATE PROCEDURE dnt_checkemailandsecques
  5. @username nchar(20),
  6. @email char(32),
  7. @secques char(8)
  8. AS
  9. SELECT TOP 1 [uid] FROM [dnt_users] WHERE [username]=@username AND [email]=@email AND [secques]=@secques
  10. GO
  11. IF OBJECT_ID('dnt_checkpasswordandsecques','P') IS NOT NULL
  12. DROP PROC dnt_checkpasswordandsecques
  13. GO
  14. CREATE PROCEDURE dnt_checkpasswordandsecques
  15. @username nchar(20),
  16. @password char(32),
  17. @secques char(8)
  18. AS
  19. SELECT TOP 1 [uid] FROM [dnt_users] WHERE [username]=@username AND [password]=@password AND [secques]=@secques
  20. GO
  21. IF OBJECT_ID('dnt_checkpasswordbyuid','P') IS NOT NULL
  22. DROP PROC dnt_checkpasswordbyuid
  23. GO
  24. CREATE PROCEDURE dnt_checkpasswordbyuid
  25. @uid int,
  26. @password char(32)
  27. AS
  28. SELECT TOP 1 [uid], [groupid], [adminid] FROM [dnt_users] WHERE [uid]=@uid AND [password]=@password
  29. GO
  30. IF OBJECT_ID('dnt_checkpasswordbyusername','P') IS NOT NULL
  31. DROP PROC dnt_checkpasswordbyusername
  32. GO
  33. CREATE PROCEDURE dnt_checkpasswordbyusername
  34. @username nchar(20),
  35. @password char(32)
  36. AS
  37. SELECT TOP 1 [uid], [groupid], [adminid] FROM [dnt_users] WHERE [username]=@username AND [password]=@password
  38. GO
  39. IF OBJECT_ID('dnt_createadmingroup','P') IS NOT NULL
  40. DROP PROC dnt_createadmingroup
  41. GO
  42. CREATE PROCEDURE dnt_createadmingroup
  43. @admingid smallint,
  44. @alloweditpost tinyint,
  45. @alloweditpoll tinyint,
  46. @allowstickthread tinyint,
  47. @allowmodpost tinyint,
  48. @allowdelpost tinyint,
  49. @allowmassprune tinyint,
  50. @allowrefund tinyint,
  51. @allowcensorword tinyint,
  52. @allowviewip tinyint,
  53. @allowbanip tinyint,
  54. @allowedituser tinyint,
  55. @allowmoduser tinyint,
  56. @allowbanuser tinyint,
  57. @allowpostannounce tinyint,
  58. @allowviewlog tinyint,
  59. @disablepostctrl tinyint,
  60. @allowviewrealname tinyint
  61. AS
  62. INSERT INTO dnt_admingroups 
  63. ([admingid],[alloweditpost],[alloweditpoll],[allowstickthread],[allowmodpost],[allowdelpost],[allowmassprune],[allowrefund],[allowcensorword],[allowviewip],[allowbanip],[allowedituser],[allowmoduser],[allowbanuser],[allowpostannounce],[allowviewlog],[disablepostctrl],[allowviewrealname])
  64. VALUES
  65. (@admingid,@alloweditpost,@alloweditpoll,@allowstickthread,@allowmodpost,@allowdelpost,@allowmassprune,@allowrefund,@allowcensorword,@allowviewip,@allowbanip,@allowedituser,@allowmoduser,@allowbanuser,@allowpostannounce,@allowviewlog,@disablepostctrl,@allowviewrealname)
  66. GO
  67. IF OBJECT_ID('[dnt_createattachment]','P') IS NOT NULL
  68. DROP PROC [dnt_createattachment]
  69. GO
  70. CREATE PROCEDURE [dnt_createattachment]
  71. @uid int,
  72. @tid int,
  73. @pid int,
  74. @postdatetime datetime,
  75. @readperm int,
  76. @filename nchar(200),
  77. @description nchar(200),
  78. @filetype nchar(100),
  79. @filesize int,
  80. @attachment nchar(200),
  81. @downloads int,
  82. @extname nvarchar(50),
  83. @attachprice int,
  84. @width int,
  85. @height int
  86. AS
  87. DECLARE @aid int
  88. INSERT INTO [dnt_attachments]([uid],[tid], [pid], [postdatetime], [readperm], [filename], [description], [filetype], [filesize],  [attachment], [downloads],[attachprice],[width],[height]) VALUES(@uid, @tid, @pid, @postdatetime, @readperm, @filename, @description, @filetype, @filesize,  @attachment, @downloads, @attachprice,@width,@height)
  89. SELECT SCOPE_IDENTITY()  AS 'aid'
  90. set @aid=(SELECT SCOPE_IDENTITY()  AS 'aid')
  91. UPDATE [dnt_posts1] SET [attachment]=1 WHERE [pid]=@pid
  92. INSERT INTO [dnt_myattachments]([aid],[uid],[attachment],[description],[postdatetime],[downloads],[filename],[pid],[tid],[extname]) VALUES(@aid,@uid,@attachment,@description,@postdatetime,@downloads,@filename,@pid,@tid,@extname)
  93. GO
  94. IF OBJECT_ID('dnt_createdebatepostexpand','P') IS NOT NULL
  95. DROP PROC dnt_createdebatepostexpand
  96. GO
  97. CREATE PROCEDURE dnt_createdebatepostexpand
  98. @tid int,
  99. @pid int,
  100. @opinion int,
  101. @diggs int
  102. AS
  103. BEGIN
  104. INSERT INTO [dnt_postdebatefields] VALUES(@tid, @pid, @opinion, @diggs)
  105. IF @opinion = 1
  106. UPDATE [dnt_debates] SET [positivediggs] = [positivediggs] + 1 WHERE [tid] = @tid
  107. ELSE IF @opinion = 2
  108. UPDATE [dnt_debates] SET [negativediggs] = [negativediggs] + 1 WHERE [tid] = @tid
  109. END
  110. GO
  111. IF OBJECT_ID('dnt_createfavorite','P') IS NOT NULL
  112. DROP PROC dnt_createfavorite
  113. GO
  114. CREATE PROCEDURE dnt_createfavorite
  115. @uid int,
  116. @tid int,
  117. @type tinyint
  118. AS
  119. INSERT INTO [dnt_favorites] ([uid],[tid],[typeid]) VALUES(@uid,@tid,@type)
  120. RETURN
  121. GO
  122. IF OBJECT_ID('dnt_createpm','P') IS NOT NULL
  123. DROP PROC dnt_createpm
  124. GO
  125. CREATE PROCEDURE dnt_createpm
  126. @pmid int,
  127. @msgfrom nvarchar(20),
  128. @msgto nvarchar(20),
  129. @msgfromid int,
  130. @msgtoid int,
  131. @folder smallint=0,
  132. @new int=0,
  133. @subject nvarchar(60),
  134. @postdatetime datetime,
  135. @message ntext,
  136. @savetosentbox smallint=1
  137. AS
  138. IF @folder<>0
  139. BEGIN
  140. SET @msgfrom=@msgto
  141. END
  142. ELSE
  143. BEGIN
  144. UPDATE [dnt_users] SET [newpmcount]=ABS(ISNULL([newpmcount],0)*1)+1,[newpm] = 1 WHERE [uid]=@msgtoid
  145. END
  146. INSERT INTO [dnt_pms] 
  147. ([msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message])
  148. VALUES
  149. (@msgfrom,@msgfromid,@msgto,@msgtoid,@folder,@new,@subject,@postdatetime,@message)
  150. SELECT SCOPE_IDENTITY() AS 'pmid'
  151. IF @savetosentbox=1 AND @folder=0
  152. BEGIN
  153. INSERT INTO [dnt_pms]
  154. ([msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message])
  155. VALUES
  156. (@msgfrom,@msgfromid,@msgto,@msgtoid,1,@new,@subject,@postdatetime,@message)
  157. END
  158. GO
  159. IF OBJECT_ID('dnt_createpost1','P') IS NOT NULL
  160. DROP PROC [dnt_createpost1]
  161. GO
  162. CREATE PROCEDURE [dnt_createpost1]
  163. @fid int,
  164. @tid int,
  165. @parentid int,
  166. @layer int,
  167. @poster varchar(20),
  168. @posterid int,
  169. @title nvarchar(60),
  170. @topictitle nvarchar(60),
  171. @postdatetime char(20),
  172. @message ntext,
  173. @ip varchar(15),
  174. @lastedit varchar(50),
  175. @invisible int,
  176. @usesig int,
  177. @htmlon int,
  178. @smileyoff int,
  179. @bbcodeoff int,
  180. @parseurloff int,
  181. @attachment int,
  182. @rate int,
  183. @ratetimes int
  184. AS
  185. DEClARE @postid int
  186. DELETE FROM [dnt_postid] WHERE DATEDIFF(n, postdatetime, GETDATE()) >5
  187. INSERT INTO [dnt_postid] ([postdatetime]) VALUES(GETDATE())
  188. SELECT @postid=SCOPE_IDENTITY()
  189. INSERT INTO [dnt_posts1]([pid], [fid], [tid], [parentid], [layer], [poster], [posterid], [title], [postdatetime], [message], [ip], [lastedit], [invisible], [usesig], [htmlon], [smileyoff], [bbcodeoff], [parseurloff], [attachment], [rate], [ratetimes]) VALUES(@postid, @fid, @tid, @parentid, @layer, @poster, @posterid, @title, @postdatetime, @message, @ip, @lastedit, @invisible, @usesig, @htmlon, @smileyoff, @bbcodeoff, @parseurloff, @attachment, @rate, @ratetimes)
  190. IF @parentid=0
  191. BEGIN
  192. UPDATE [dnt_posts1] SET [parentid]=@postid WHERE [pid]=@postid
  193. END
  194. IF @@ERROR=0
  195. BEGIN
  196. IF  @invisible = 0
  197. BEGIN
  198. UPDATE [dnt_statistics] SET [totalpost]=[totalpost] + 1
  199. DECLARE @fidlist AS VARCHAR(1000)
  200. DECLARE @strsql AS VARCHAR(4000)
  201. SET @fidlist = '';
  202. SELECT @fidlist = ISNULL([parentidlist],'') FROM [dnt_forums] WHERE [fid] = @fid
  203. IF RTRIM(@fidlist)<>''
  204. BEGIN
  205. SET @fidlist = RTRIM(@fidlist) + ',' + CAST(@fid AS VARCHAR(10))
  206. END
  207. ELSE
  208. BEGIN
  209. SET @fidlist = CAST(@fid AS VARCHAR(10))
  210. END
  211. UPDATE [dnt_forums] SET 
  212. [posts]=[posts] + 1, 
  213. [todayposts]=CASE 
  214. WHEN DATEDIFF(day, [lastpost], GETDATE())=0 THEN [todayposts] + 1 
  215.  ELSE 1 
  216.  END,
  217. [lasttid]=@tid,
  218. [lasttitle]=@topictitle,
  219. [lastpost]=@postdatetime,
  220. [lastposter]=@poster,
  221. [lastposterid]=@posterid 
  222. WHERE fid IN (SELECT [item] FROM
  223.  [dnt_split](@fidlist, ','))
  224. UPDATE [dnt_users] SET
  225. [lastpost] = @postdatetime,
  226. [lastpostid] = @postid,
  227. [lastposttitle] = @title,
  228. [posts] = [posts] + 1,
  229. [lastactivity] = GETDATE()
  230. WHERE [uid] = @posterid
  231. IF @layer<=0
  232. BEGIN
  233. UPDATE [dnt_topics] SET [replies]=0,[lastposter]=@poster,[lastpost]=@postdatetime,[lastposterid]=@posterid WHERE [tid]=@tid
  234. END
  235. ELSE
  236. BEGIN
  237. UPDATE [dnt_topics] SET [replies]=[replies] + 1,[lastposter]=@poster,[lastpost]=@postdatetime,[lastposterid]=@posterid WHERE [tid]=@tid
  238. END
  239. END
  240. UPDATE [dnt_topics] SET [lastpostid]=@postid WHERE [tid]=@tid
  241. IF @posterid <> -1
  242. BEGIN
  243. INSERT [dnt_myposts]([uid], [tid], [pid], [dateline]) VALUES(@posterid, @tid, @postid, @postdatetime)
  244. END
  245. END
  246. SELECT @postid AS postid
  247. GO
  248. IF OBJECT_ID('dnt_createsearchcache','P') IS NOT NULL
  249. DROP PROC dnt_createsearchcache
  250. GO
  251. CREATE PROCEDURE dnt_createsearchcache
  252. @keywords varchar(255),
  253. @searchstring varchar(255),
  254. @ip varchar(15),
  255. @uid int,
  256. @groupid int,
  257. @postdatetime varchar(19),
  258. @expiration varchar(19),
  259. @topics int,
  260. @tids text
  261. AS
  262. INSERT INTO dnt_searchcaches 
  263. ([keywords],[searchstring],[ip],[uid],[groupid],[postdatetime],[expiration],[topics],[tids])
  264. VALUES
  265. (@keywords,@searchstring,@ip,@uid,@groupid,@postdatetime,@expiration,@topics,@tids)
  266. SELECT SCOPE_IDENTITY()  AS 'searchid'
  267. GO
  268. IF OBJECT_ID('[dnt_createtags]','P') IS NOT NULL
  269. DROP PROC [dnt_createtags]
  270. GO
  271. CREATE PROCEDURE [dnt_createtags]
  272. @tags nvarchar(55),
  273. @userid int,
  274. @postdatetime datetime
  275. AS
  276. BEGIN
  277. INSERT INTO [dnt_tags]([tagname], [userid], [postdatetime], [orderid], [color], [count], [fcount], [pcount], [scount], [vcount]) 
  278. SELECT [item], @userid, @postdatetime, 0, '', 0, 0, 0, 0, 0 FROM [dnt_split](@tags, ' ') AS [newtags] 
  279. WHERE NOT EXISTS (SELECT [tagname] FROM [dnt_tags] WHERE [newtags].[item] = [tagname])
  280. END
  281. GO
  282. IF OBJECT_ID('dnt_createtopic','P') IS NOT NULL
  283. DROP PROC dnt_createtopic
  284. GO
  285. CREATE PROCEDURE dnt_createtopic
  286. @fid smallint,
  287. @iconid smallint,
  288. @title nchar(80),
  289. @typeid smallint,
  290. @readperm int,
  291. @price smallint,
  292. @poster char(20),
  293. @posterid int,
  294. @postdatetime smalldatetime,
  295. @lastpost smalldatetime,
  296. @lastpostid int,
  297. @lastposter char(20),
  298. @views int,
  299. @replies int,
  300. @displayorder int,
  301. @highlight varchar(500),
  302. @digest int,
  303. @rate int,
  304. @hide int,
  305. @attachment int,
  306. @moderated int,
  307. @closed int,
  308. @magic int,
  309. @special tinyint,
  310. @attention int
  311. AS
  312. DECLARE @topicid int
  313. DELETE FROM [dnt_topics] WHERE [tid]>(SELECT ISNULL(max(tid),0)-100 FROM [dnt_topics]) AND [lastpostid]=0
  314. INSERT INTO [dnt_topics]([fid], [iconid], [title], [typeid], [readperm], [price], [poster], [posterid], [postdatetime], [lastpost], [lastpostid], [lastposter], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [attachment], [moderated], [closed], [magic], [special],[attention]) VALUES(@fid, @iconid, @title, @typeid, @readperm, @price, @poster, @posterid, @postdatetime, @lastpost, @lastpostid, @lastposter, @views, @replies, @displayorder, @highlight, @digest, @rate, @hide, @attachment, @moderated, @closed, @magic, @special,@attention)
  315. SET @topicid=SCOPE_IDENTITY()
  316. IF @@ERROR=0 AND @displayorder=0
  317. BEGIN
  318. UPDATE [dnt_statistics] SET [totaltopic]=[totaltopic] + 1
  319. UPDATE [dnt_forums] SET [topics] = [topics] + 1,[curtopics] = [curtopics] + 1 WHERE [fid] = @fid
  320. IF @posterid <> -1
  321. BEGIN
  322. INSERT INTO [dnt_mytopics]([tid],[uid],[dateline]) VALUES(@topicid,  @posterid,  @postdatetime)
  323. END
  324. END
  325. SELECT @topicid as topicid
  326. GO
  327. IF OBJECT_ID('[dnt_createuser]','P') IS NOT NULL
  328. DROP PROC [dnt_createuser]
  329. GO
  330. CREATE PROCEDURE [dnt_createuser]
  331. @username nchar(20),
  332. @nickname nchar(20),
  333. @password char(32),
  334. @secques char(8),
  335. @gender int,
  336. @adminid int,
  337. @groupid smallint,
  338. @groupexpiry int,
  339. @extgroupids char(60),
  340. @regip char(15),
  341. @joindate char(19),
  342. @lastip char(15),
  343. @lastvisit char(19),
  344. @lastactivity char(19),
  345. @lastpost char(19),
  346. @lastpostid int,
  347. @lastposttitle nchar(60),
  348. @posts int,
  349. @digestposts smallint,
  350. @oltime int,
  351. @pageviews int,
  352. @credits int,
  353. @extcredits1 float,
  354. @extcredits2 float,
  355. @extcredits3 float,
  356. @extcredits4 float,
  357. @extcredits5 float,
  358. @extcredits6 float,
  359. @extcredits7 float,
  360. @extcredits8 float,
  361. @avatarshowid int,
  362. @email char(50),
  363. @bday char(19),
  364. @sigstatus int,
  365. @salt nchar(6),
  366. @tpp int,
  367. @ppp int,
  368. @templateid smallint,
  369. @pmsound int,
  370. @showemail int,
  371. @newsletter int,
  372. @invisible int,
  373. @newpm int,
  374. @accessmasks int,
  375. @website varchar(80),
  376. @icq varchar(12),
  377. @qq varchar(12),
  378. @yahoo varchar(40),
  379. @msn varchar(40),
  380. @skype varchar(40),
  381. @location nvarchar(30),
  382. @customstatus varchar(30),
  383. @avatar varchar(255),
  384. @avatarwidth int,
  385. @avatarheight int,
  386. @medals varchar(300),
  387. @bio nvarchar(500),
  388. @signature nvarchar(500),
  389. @sightml nvarchar(1000),
  390. @authstr varchar(20),
  391. @realname nvarchar(10),
  392. @idcard varchar(20),
  393. @mobile varchar(20),
  394. @phone varchar(20)
  395. AS
  396. DECLARE @uid int
  397. INSERT INTO [dnt_users]([username],[nickname], [password], [secques], [gender], [adminid], [groupid], [groupexpiry], [extgroupids], [regip], [joindate], [lastip], [lastvisit], [lastactivity], [lastpost], [lastpostid], [lastposttitle], [posts], [digestposts], [oltime], [pageviews], [credits], [extcredits1], [extcredits2], [extcredits3], [extcredits4], [extcredits5], [extcredits6], [extcredits7], [extcredits8], [avatarshowid], [email], [bday], [sigstatus], [salt], [tpp], [ppp], [templateid], [pmsound], [showemail], [newsletter], [invisible], [newpm], [accessmasks]) VALUES(@username,@nickname, @password, @secques, @gender, @adminid, @groupid, @groupexpiry, @extgroupids, @regip, @joindate, @lastip, @lastvisit, @lastactivity, @lastpost, @lastpostid, @lastposttitle, @posts, @digestposts, @oltime, @pageviews, @credits, @extcredits1, @extcredits2, @extcredits3, @extcredits4, @extcredits5, @extcredits6, @extcredits7, @extcredits8, @avatarshowid, @email, @bday, @sigstatus, @salt, @tpp, @ppp, @templateid, @pmsound, @showemail, @newsletter, @invisible, @newpm, @accessmasks)
  398. SELECT SCOPE_IDENTITY()  AS 'userid'
  399. SET @uid = SCOPE_IDENTITY()
  400. IF @@ERROR=0
  401. BEGIN
  402. UPDATE [dnt_statistics] SET [totalusers]=[totalusers] + 1,[lastusername]=@username,[lastuserid]=@uid
  403. END
  404. INSERT INTO dnt_userfields 
  405. ([uid],[website],[icq],[qq],[yahoo],[msn],[skype],[location],[customstatus],[avatar],[avatarwidth],[avatarheight],[medals],[bio],[signature],[sightml],[authstr],[realname],[idcard],[mobile],[phone])
  406. VALUES
  407. (@uid,@website,@icq,@qq,@yahoo,@msn,@skype,@location,@customstatus,@avatar,@avatarwidth,@avatarheight,@medals,@bio,@signature,@sightml,@authstr,@realname,@idcard,@mobile,@phone)
  408. GO
  409. IF OBJECT_ID('[dnt_deletepost1bypid]','P') IS NOT NULL
  410. DROP PROC [dnt_deletepost1bypid]
  411. GO
  412. CREATE PROCEDURE [dnt_deletepost1bypid]
  413.                         @pid int,
  414. @chanageposts AS BIT
  415.                     AS
  416.                         DECLARE @fid int
  417.                         DECLARE @tid int
  418.                         DECLARE @posterid int
  419.                         DECLARE @lastforumposterid int
  420.                         DECLARE @layer int
  421.                         DECLARE @postdatetime smalldatetime
  422.                         DECLARE @poster varchar(50)
  423.                         DECLARE @postcount int
  424.                         DECLARE @title nchar(60)
  425.                         DECLARE @lasttid int
  426.                         DECLARE @postid int
  427.                         DECLARE @todaycount int
  428.                     
  429.                     
  430.                         SELECT @fid = [fid],@tid = [tid],@posterid = [posterid],@layer = [layer], @postdatetime = [postdatetime] FROM [dnt_posts1] WHERE pid = @pid
  431.                         DECLARE @fidlist AS VARCHAR(1000)
  432.                     
  433.                         SET @fidlist = '';
  434.                     
  435.                         SELECT @fidlist = ISNULL([parentidlist],'') FROM [dnt_forums] WHERE [fid] = @fid
  436.                         IF RTRIM(@fidlist)<>''
  437.                             BEGIN
  438.                                 SET @fidlist = RTRIM(@fidlist) + ',' + CAST(@fid AS VARCHAR(10))
  439.                             END
  440.                         ELSE
  441.                             BEGIN
  442.                                 SET @fidlist = CAST(@fid AS VARCHAR(10))
  443.                             END
  444.                         IF @layer<>0
  445.                             BEGIN
  446.                     
  447. IF @chanageposts = 1
  448. BEGIN
  449. UPDATE [dnt_statistics] SET [totalpost]=[totalpost] - 1
  450. UPDATE [dnt_forums] SET 
  451. [posts]=[posts] - 1, 
  452. [todayposts]=CASE 
  453. WHEN DATEPART(yyyy, @postdatetime)=DATEPART(yyyy,GETDATE()) AND DATEPART(mm, @postdatetime)=DATEPART(mm,GETDATE()) AND DATEPART(dd, @postdatetime)=DATEPART(dd,GETDATE()) THEN [todayposts] - 1
  454. ELSE [todayposts]
  455. END
  456. WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' +
  457. (SELECT @fidlist AS [fid]) + ',') > 0)
  458.                     
  459. UPDATE [dnt_users] SET [posts] = [posts] - 1 WHERE [uid] = @posterid
  460. UPDATE [dnt_topics] SET [replies]=[replies] - 1 WHERE [tid]=@tid
  461. END
  462.                     
  463.                                 DELETE FROM [dnt_posts1] WHERE [pid]=@pid
  464.                     
  465.                             END
  466.                         ELSE
  467.                             BEGIN
  468.                     
  469.                                 SELECT @postcount = COUNT([pid]) FROM [dnt_posts1] WHERE [tid] = @tid
  470.                                 SELECT @todaycount = COUNT([pid]) FROM [dnt_posts1] WHERE [tid] = @tid AND DATEDIFF(d, [postdatetime], GETDATE()) = 0
  471.                     
  472. IF @chanageposts = 1
  473. BEGIN
  474. UPDATE [dnt_statistics] SET [totaltopic]=[totaltopic] - 1, [totalpost]=[totalpost] - @postcount
  475.                     
  476. UPDATE [dnt_forums] SET [posts]=[posts] - @postcount, [topics]=[topics] - 1,[todayposts]=[todayposts] - @todaycount WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' +(SELECT @fidlist AS [fid]) + ',') > 0)
  477.                     
  478. UPDATE [dnt_users] SET [posts] = [posts] - @postcount WHERE [uid] = @posterid
  479.                     
  480. END
  481.                                 DELETE FROM [dnt_posts1] WHERE [tid] = @tid
  482.                     
  483.                                 DELETE FROM [dnt_topics] WHERE [tid] = @tid
  484.                     
  485.                             END
  486.                     
  487.                         IF @layer<>0
  488.                             BEGIN
  489.                                 SELECT TOP 1 @pid = [pid], @posterid = [posterid], @postdatetime = [postdatetime], @title = [title], @poster = [poster] FROM [dnt_posts1] WHERE [tid]=@tid ORDER BY [pid] DESC
  490.                                 UPDATE [dnt_topics] SET [lastposter]=@poster,[lastpost]=@postdatetime,[lastpostid]=@pid,[lastposterid]=@posterid WHERE [tid]=@tid
  491.                             END
  492.                         SELECT @lasttid = [lasttid] FROM [dnt_forums] WHERE [fid] = @fid
  493.                     
  494.                         IF @lasttid = @tid
  495.                             BEGIN
  496.                     
  497.                     
  498.                                 SELECT TOP 1 @pid = [pid], @tid = [tid],@lastforumposterid = [posterid], @title = [title], @postdatetime = [postdatetime], @poster = [poster] FROM [dnt_posts1] WHERE [fid] = @fid ORDER BY [pid] DESC
  499.                     
  500.                             
  501.                             
  502.                                 UPDATE [dnt_forums] SET 
  503.                     
  504.                                 [lastpost]=@postdatetime,
  505.                                 [lastposter]=ISNULL(@poster,''),
  506.                                 [lastposterid]=ISNULL(@lastforumposterid,'0')
  507.                                 WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' +
  508.                                 (SELECT @fidlist AS [fid]) + ',') > 0)
  509.                     
  510.                                 SELECT TOP 1 @pid = [pid], @tid = [tid],@posterid = [posterid], @postdatetime = [postdatetime], @title = [title], @poster = [poster] FROM [dnt_posts1] WHERE [posterid]=@posterid ORDER BY [pid] DESC
  511.                     
  512.                                 UPDATE [dnt_users] SET
  513.                     
  514.                                 [lastpost] = @postdatetime,
  515.                                 [lastpostid] = @pid,
  516.                                 [lastposttitle] = ISNULL(@title,'')
  517.                     
  518.                                 WHERE [uid] = @posterid
  519.                     
  520.                             END
  521. GO
  522. IF OBJECT_ID('[dnt_deletetopictags]','P') IS NOT NULL
  523. DROP PROC [dnt_deletetopictags]
  524. GO
  525. CREATE PROCEDURE [dnt_deletetopictags]
  526. @tid int
  527.  AS
  528. BEGIN       
  529. UPDATE [dnt_tags] SET [count]=[count]-1,[fcount]=[fcount]-1 
  530. WHERE EXISTS (SELECT [tagid] FROM [dnt_topictags] WHERE [tid] = @tid AND [tagid] = [dnt_tags].[tagid])
  531.     DELETE FROM [dnt_topictags] WHERE [tid] = @tid
  532. END
  533. GO
  534. IF OBJECT_ID('dnt_getalltopiccount','P') IS NOT NULL
  535. DROP PROC dnt_getalltopiccount
  536. GO
  537. CREATE PROCEDURE dnt_getalltopiccount
  538. @fid int
  539. AS
  540. SELECT COUNT(tid) FROM [dnt_topics] WHERE ([fid]=@fid   OR   [fid]  IN (  SELECT fid  FROM [dnt_forums]  WHERE  CHARINDEX(',' + RTRIM(@fid) + ',', ',' + RTRIM(parentidlist) + ',') > 0))  AND [displayorder]>=0
  541. GO
  542. IF OBJECT_ID('[dnt_getdebatepostlist1]','P') IS NOT NULL
  543. DROP PROC [dnt_getdebatepostlist1]
  544. GO
  545. CREATE PROCEDURE [dnt_getdebatepostlist1] 
  546. @tid int,
  547. @opinion int,
  548. @pagesize int,
  549. @pageindex int
  550. AS
  551. BEGIN
  552. DECLARE @pagetop int
  553. SET @pagetop = (@pageindex-1)*@pagesize
  554. IF @pageindex = 1 
  555. EXEC('SELECT 
  556. [dnt_posts1].[attachment],
  557. [dnt_posts1].[bbcodeoff],
  558. [dnt_posts1].[fid],
  559. [dnt_posts1].[htmlon],
  560. [dnt_posts1].[invisible],
  561. [dnt_posts1].[ip],
  562. [dnt_posts1].[lastedit],
  563. [dnt_posts1].[layer],
  564. [dnt_posts1].[message],
  565. [dnt_posts1].[parentid],
  566. [dnt_posts1].[parseurloff],
  567. [dnt_posts1].[pid],
  568. [dnt_posts1].[postdatetime],
  569. [dnt_posts1].[poster],
  570. [dnt_posts1].[posterid],
  571. [dnt_posts1].[rate],
  572. [dnt_posts1].[ratetimes],
  573. [dnt_posts1].[smileyoff],
  574. [dnt_posts1].[tid],
  575. [dnt_posts1].[title],
  576. [dnt_posts1].[usesig],
  577. [dnt_users].[accessmasks], 
  578. [dnt_users].[adminid],
  579. [dnt_users].[avatarshowid],
  580. [dnt_users].[bday],
  581. [dnt_users].[credits],
  582. [dnt_users].[digestposts],
  583. [dnt_users].[email],
  584. [dnt_users].[extcredits1],
  585. [dnt_users].[extcredits2],
  586. [dnt_users].[extcredits3],
  587. [dnt_users].[extcredits4],
  588. [dnt_users].[extcredits5],
  589. [dnt_users].[extcredits6],
  590. [dnt_users].[extcredits7],
  591. [dnt_users].[extcredits8],
  592. [dnt_users].[extgroupids],
  593. [dnt_users].[gender],
  594. [dnt_users].[groupexpiry],
  595. [dnt_users].[groupid],
  596. [dnt_users].[joindate],
  597. [dnt_users].[lastactivity],
  598. [dnt_users].[lastip],
  599. [dnt_users].[lastpost],
  600. [dnt_users].[lastpostid],
  601. [dnt_users].[lastposttitle],
  602. [dnt_users].[lastvisit],
  603. [dnt_users].[newpm],
  604. [dnt_users].[newpmcount],
  605. [dnt_users].[newsletter],
  606. [dnt_users].[nickname],
  607. [dnt_users].[oltime],
  608. [dnt_users].[onlinestate],
  609. [dnt_users].[pageviews],
  610. [dnt_users].[password],
  611. [dnt_users].[pmsound],
  612. [dnt_users].[posts],
  613. [dnt_users].[ppp],
  614. [dnt_users].[regip],
  615. [dnt_users].[secques],
  616. [dnt_users].[showemail],
  617. [dnt_users].[sigstatus],
  618. [dnt_users].[spaceid],
  619. [dnt_users].[templateid],
  620. [dnt_users].[tpp],
  621. [dnt_users].[uid],
  622. [dnt_users].[username],
  623. [dnt_userfields].[authflag],
  624. [dnt_userfields].[authstr],
  625. [dnt_userfields].[authtime],
  626. [dnt_userfields].[avatar],
  627. [dnt_userfields].[avatarheight],
  628. [dnt_userfields].[avatarwidth],
  629. [dnt_userfields].[bio],
  630. [dnt_userfields].[customstatus],
  631. [dnt_userfields].[icq],
  632. [dnt_userfields].[idcard],
  633. [dnt_userfields].[ignorepm],
  634. [dnt_userfields].[location],
  635. [dnt_userfields].[medals],
  636. [dnt_userfields].[mobile],
  637. [dnt_userfields].[msn],
  638. [dnt_userfields].[phone],
  639. [dnt_userfields].[qq],
  640. [dnt_userfields].[realname],
  641. [dnt_userfields].[sightml],
  642. [dnt_userfields].[signature],
  643. [dnt_userfields].[skype],
  644. [dnt_userfields].[website],
  645. [dnt_userfields].[yahoo] FROM [dnt_posts1] 
  646. LEFT JOIN dnt_users ON dnt_users.uid = [dnt_posts1].posterid 
  647. LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] 
  648. WHERE [dnt_posts1].invisible=0 AND [dnt_posts1].pid IN 
  649. (SELECT TOP ' + @pagesize + ' pid FROM dnt_postdebatefields 
  650.  WHERE opinion=' + @opinion + ' AND 
  651. tid=' + @tid+')')
  652. ELSE
  653. EXEC('SELECT 
  654. [dnt_posts1].[attachment],
  655. [dnt_posts1].[bbcodeoff],
  656. [dnt_posts1].[fid],
  657. [dnt_posts1].[htmlon],
  658. [dnt_posts1].[invisible],
  659. [dnt_posts1].[ip],
  660. [dnt_posts1].[lastedit],
  661. [dnt_posts1].[layer],
  662. [dnt_posts1].[message],
  663. [dnt_posts1].[parentid],
  664. [dnt_posts1].[parseurloff],
  665. [dnt_posts1].[pid],
  666. [dnt_posts1].[postdatetime],
  667. [dnt_posts1].[poster],
  668. [dnt_posts1].[posterid],
  669. [dnt_posts1].[rate],
  670. [dnt_posts1].[ratetimes],
  671. [dnt_posts1].[smileyoff],
  672. [dnt_posts1].[tid],
  673. [dnt_posts1].[title],
  674. [dnt_posts1].[usesig],
  675. [dnt_users].[accessmasks], 
  676. [dnt_users].[adminid],
  677. [dnt_users].[avatarshowid],
  678. [dnt_users].[bday],
  679. [dnt_users].[credits],
  680. [dnt_users].[digestposts],
  681. [dnt_users].[email],
  682. [dnt_users].[extcredits1],
  683. [dnt_users].[extcredits2],
  684. [dnt_users].[extcredits3],
  685. [dnt_users].[extcredits4],
  686. [dnt_users].[extcredits5],
  687. [dnt_users].[extcredits6],
  688. [dnt_users].[extcredits7],
  689. [dnt_users].[extcredits8],
  690. [dnt_users].[extgroupids],
  691. [dnt_users].[gender],
  692. [dnt_users].[groupexpiry],
  693. [dnt_users].[groupid],
  694. [dnt_users].[joindate],
  695. [dnt_users].[lastactivity],
  696. [dnt_users].[lastip],
  697. [dnt_users].[lastpost],
  698. [dnt_users].[lastpostid],
  699. [dnt_users].[lastposttitle],
  700. [dnt_users].[lastvisit],
  701. [dnt_users].[newpm],
  702. [dnt_users].[newpmcount],
  703. [dnt_users].[newsletter],
  704. [dnt_users].[nickname],
  705. [dnt_users].[oltime],
  706. [dnt_users].[onlinestate],
  707. [dnt_users].[pageviews],
  708. [dnt_users].[password],
  709. [dnt_users].[pmsound],
  710. [dnt_users].[posts],
  711. [dnt_users].[ppp],
  712. [dnt_users].[regip],
  713. [dnt_users].[secques],
  714. [dnt_users].[showemail],
  715. [dnt_users].[sigstatus],
  716. [dnt_users].[spaceid],
  717. [dnt_users].[templateid],
  718. [dnt_users].[tpp],
  719. [dnt_users].[uid],
  720. [dnt_users].[username],
  721. [dnt_userfields].[authflag],
  722. [dnt_userfields].[authstr],
  723. [dnt_userfields].[authtime],
  724. [dnt_userfields].[avatar],
  725. [dnt_userfields].[avatarheight],
  726. [dnt_userfields].[avatarwidth],
  727. [dnt_userfields].[bio],
  728. [dnt_userfields].[customstatus],
  729. [dnt_userfields].[icq],
  730. [dnt_userfields].[idcard],
  731. [dnt_userfields].[ignorepm],
  732. [dnt_userfields].[location],
  733. [dnt_userfields].[medals],
  734. [dnt_userfields].[mobile],
  735. [dnt_userfields].[msn],
  736. [dnt_userfields].[phone],
  737. [dnt_userfields].[qq],
  738. [dnt_userfields].[realname],
  739. [dnt_userfields].[sightml],
  740. [dnt_userfields].[signature],
  741. [dnt_userfields].[skype],
  742. [dnt_userfields].[website],
  743. [dnt_userfields].[yahoo] FROM [dnt_posts1] 
  744. LEFT JOIN dnt_users ON dnt_users.uid = [dnt_posts1].posterid 
  745. LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] 
  746. WHERE [dnt_posts1].invisible=0 AND [dnt_posts1].pid IN 
  747. (SELECT TOP ' + @pagesize + ' pid FROM dnt_postdebatefields 
  748.  WHERE opinion=' + @opinion + ' AND 
  749. tid=' + @tid+' AND pid > (SELECT MAX(pid) FROM (
  750. SELECT TOP ' + @pagetop + ' pid FROM dnt_postdebatefields 
  751. WHERE opinion=' + @opinion + ' AND 
  752. tid=' + @tid+' ORDER BY pid) AS tblTmp) ORDER BY pid)')
  753. END
  754. GO
  755. IF OBJECT_ID('dnt_getfavoritescount','P') IS NOT NULL
  756. DROP PROC dnt_getfavoritescount
  757. GO
  758. CREATE PROCEDURE dnt_getfavoritescount
  759. @uid int,
  760. @typeid int
  761. AS
  762. SELECT COUNT(uid) as c FROM [dnt_favorites] WHERE [uid]=@uid and typeid=@typeid
  763. GO
  764. IF OBJECT_ID('dnt_getfavoritescountbytype','P') IS NOT NULL
  765. DROP PROC dnt_getfavoritescountbytype
  766. GO
  767. CREATE PROCEDURE dnt_getfavoritescountbytype
  768. @uid int,
  769. @typeid tinyint
  770. AS
  771. SELECT COUNT(uid) as c FROM [dnt_favorites] WHERE [uid]=@uid AND [typeid]=@typeid
  772. GO
  773. IF OBJECT_ID('dnt_getfavoriteslist','P') IS NOT NULL
  774. DROP PROC dnt_getfavoriteslist
  775. GO
  776. CREATE PROCEDURE dnt_getfavoriteslist
  777. @uid int,
  778. @pagesize int,
  779. @pageindex int
  780. AS
  781. DECLARE @strSQL varchar(5000)
  782. SET @strSQL='SELECT [f].[uid],[f].[tid],[topics].[title],[topics].[poster],[topics].[postdatetime],[topics].[replies],[topics].[views],[topics].[posterid] FROM [dnt_favorites] [f],[dnt_topics] [topics] WHERE [f].[tid]=[topics].[tid] AND [f].[typeid]=0 AND [f].[uid]=' + STR(@uid)
  783. IF @pageindex = 1
  784. BEGIN
  785. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [uid],[tid],[title],[poster],[postdatetime],[replies],[views],[posterid]  FROM (' + @strSQL + ') f' + '  ORDER BY [tid] DESC'
  786. END
  787. ELSE
  788. BEGIN
  789. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [uid],[tid],[title],[poster],[postdatetime],[replies],[views],[posterid]  FROM (' + @strSQL + ') f1 WHERE [tid] < (SELECT MIN([tid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] FROM (' + @strSQL + ') f2' + '  ORDER BY [tid] DESC) AS tblTmp)' + '  ORDER BY [tid] DESC'
  790. END
  791. EXEC(@strSQL)
  792. GO
  793. IF OBJECT_ID('dnt_getfirstpost1id','P') IS NOT NULL
  794. DROP PROC dnt_getfirstpost1id
  795. GO
  796. CREATE PROCEDURE dnt_getfirstpost1id
  797. @tid int
  798. AS
  799. SELECT TOP 1 [pid] FROM [dnt_posts1] WHERE [tid]=@tid ORDER BY [pid]
  800. GO
  801. IF OBJECT_ID('[dnt_getlastexecutescheduledeventdatetime]','P') IS NOT NULL
  802. DROP PROC [dnt_getlastexecutescheduledeventdatetime]
  803. GO
  804. CREATE PROCEDURE [dnt_getlastexecutescheduledeventdatetime]
  805. (
  806. @key VARCHAR(100),
  807. @servername VARCHAR(100),
  808. @lastexecuted DATETIME OUTPUT
  809. )
  810. AS
  811. SELECT @lastexecuted = MAX([lastexecuted]) FROM [dnt_scheduledevents] WHERE [key] = @key AND [servername] = @servername
  812. IF(@lastexecuted IS NULL)
  813. BEGIN
  814. SET @lastexecuted = DATEADD(YEAR,-1,GETDATE())
  815. END
  816. GO
  817. IF OBJECT_ID('[dnt_getlastpostlist1]','P') IS NOT NULL
  818. DROP PROC [dnt_getlastpostlist1]
  819. GO
  820. CREATE PROCEDURE [dnt_getlastpostlist1]
  821. @tid int,
  822. @postnum int
  823. AS
  824. EXEC('SELECT TOP ' + @postnum + ' [dnt_posts1].[pid], [dnt_posts1].[fid], [dnt_posts1].[layer], [dnt_posts1].[posterid], [dnt_posts1].[title], [dnt_posts1].[message], [dnt_posts1].[postdatetime], [dnt_posts1].[attachment], [dnt_posts1].[poster], [dnt_posts1].[posterid], [dnt_posts1].[invisible], [dnt_posts1].[usesig], [dnt_posts1].[htmlon], [dnt_posts1].[smileyoff], [dnt_posts1].[parseurloff], [dnt_posts1].[bbcodeoff], [dnt_posts1].[rate], [dnt_posts1].[ratetimes], [dnt_users].[username], [dnt_users].[email], [dnt_users].[showemail], [dnt_userfields].[avatar], [dnt_userfields].[avatarwidth], [dnt_userfields].[avatarheight], [dnt_userfields].[sightml] AS signature, [dnt_userfields].[location], [dnt_userfields].[customstatus] FROM [dnt_posts1] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[dnt_posts1].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [dnt_posts1].[tid]=' + @tid + '  AND  [dnt_posts1].[invisible] <=0 AND [dnt_posts1].layer <> 0 ORDER BY [dnt_posts1].[pid] DESC')
  825. GO
  826. IF OBJECT_ID('[dnt_getmyattachments]','P') IS NOT NULL
  827. DROP PROC [dnt_getmyattachments]
  828. GO
  829. CREATE PROCEDURE [dnt_getmyattachments]
  830. @uid int,
  831. @pageindex int,
  832. @pagesize int
  833.  AS
  834. DECLARE @strSQL varchar(5000)
  835. IF @pageindex = 1
  836. BEGIN
  837. SET @strSQL ='select TOP  '+ STR(@pagesize) + ' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid]  from [dnt_myattachments]  where  [uid]='+STR(@uid)+'  order by [aid] desc'
  838. END
  839. ELSE
  840. BEGIN
  841. SET @strSQL = 'SELECT TOP  '+STR(@pagesize)+' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid] FROM [dnt_myattachments] WHERE [aid] >(SELECT ISNULL(MAX([aid]),0) FROM (SELECT TOP '+STR((@pageindex-1)*@pagesize)+' [aid] FROM [dnt_myattachments]  ORDER BY aid) as A) and [uid]='+ STR(@uid)+'  ORDER BY aid '
  842. END
  843. EXEC(@strSQL)
  844. GO
  845. IF OBJECT_ID('[dnt_getmyattachmentsbytype]','P') IS NOT NULL
  846. DROP PROC [dnt_getmyattachmentsbytype]
  847. GO
  848. CREATE PROCEDURE [dnt_getmyattachmentsbytype]
  849. @uid int,
  850. @pageindex int,
  851. @pagesize int,
  852. @extlist as varchar(100)
  853.  AS
  854. DECLARE @strSQL varchar(5000)
  855. IF @pageindex = 1
  856. BEGIN
  857. SET @strSQL ='select TOP '+ STR(@pagesize) + ' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid]  from [dnt_myattachments] where  [extname] in ('+@extlist+') and [uid]='+STR(@uid)+' order by [aid] desc'
  858. END
  859. ELSE
  860. BEGIN
  861. SET @strSQL = 'select TOP '+ STR(@pagesize) + ' [aid],[uid],[attachment],[description],[downloads],[extname],[filename],[pid],[postdatetime],[tid]  from dnt_myattachments where [extname] in ('+@extlist+')  and [aid] >(SELECT ISNULL(MAX([aid]),0) FROM (SELECT TOP '+STR((@pageindex-1)*@pagesize)+' [aid] FROM [dnt_myattachments]  where [extname] in ('+@extlist+') ORDER BY aid) as A) and [uid]='+STR(@uid)+' ORDER BY aid '
  862. END
  863. EXEC(@strSQL)
  864. GO
  865. IF OBJECT_ID('[dnt_getmyposts]','P') IS NOT NULL
  866. DROP PROC [dnt_getmyposts]
  867. GO
  868. CREATE PROCEDURE [dnt_getmyposts]
  869. @uid int,
  870. @pageindex int,
  871. @pagesize int
  872.  AS
  873. DECLARE @strSQL varchar(5000)
  874. IF @pageindex = 1
  875. BEGIN
  876. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  877.  FROM [dnt_topics] 
  878. WHERE [tid] IN (
  879. SELECT DISTINCT TOP ' + STR(@pagesize) + ' [tid] 
  880. FROM [dnt_myposts] 
  881. WHERE [uid]=' + STR(@uid) + ' 
  882. ORDER BY [tid] DESC
  883. ORDER BY [tid] DESC'
  884. END
  885. ELSE
  886. BEGIN
  887. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  888.  FROM [dnt_topics] 
  889. WHERE [tid] IN (
  890. SELECT DISTINCT TOP ' + STR(@pagesize) + ' [tid] 
  891. FROM [dnt_myposts] 
  892. WHERE [uid]=' + STR(@uid) + ' 
  893. AND [tid] < (
  894. SELECT MIN([tid])
  895. FROM (
  896. SELECT DISTINCT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] 
  897. FROM [dnt_myposts]
  898. WHERE [uid]=' + STR(@uid) + ' 
  899. ORDER BY [tid] DESC
  900.  ) AS [ttt]
  901. )
  902. ORDER BY [tid] DESC
  903. ORDER BY [tid] DESC'
  904. END
  905. EXEC(@strSQL)
  906. GO
  907. IF OBJECT_ID('[dnt_getmytopics]','P') IS NOT NULL
  908. DROP PROC [dnt_getmytopics]
  909. GO
  910. CREATE PROCEDURE [dnt_getmytopics]
  911. @uid int,
  912. @pageindex int,
  913. @pagesize int
  914.  AS
  915. DECLARE @strSQL varchar(5000)
  916. IF @pageindex = 1
  917. BEGIN
  918. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  919.  FROM [dnt_topics] 
  920. WHERE [tid] IN (
  921. SELECT TOP ' + STR(@pagesize) + ' [tid] 
  922. FROM [dnt_mytopics] 
  923. WHERE [uid]=' + STR(@uid) + ' 
  924. ORDER BY [tid] DESC
  925. ORDER BY [tid] DESC'
  926. END
  927. ELSE
  928. BEGIN
  929. SET @strSQL = 'SELECT [tid], [fid], [iconid], [typeid], [readperm], [price], [poster], [posterid], [title], [postdatetime], [lastpost], [lastpostid], [lastposter], [lastposterid], [views], [replies], [displayorder], [highlight], [digest], [rate], [hide], [special], [attachment], [moderated], [closed], [magic]
  930.  FROM [dnt_topics] 
  931. WHERE [tid] IN (
  932. SELECT TOP ' + STR(@pagesize) + ' [tid] 
  933. FROM [dnt_mytopics] 
  934. WHERE [uid]=' + STR(@uid) + ' 
  935. AND [tid] < (
  936. SELECT MIN([tid])
  937. FROM (
  938. SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] 
  939. FROM [dnt_mytopics]
  940. WHERE [uid]=' + STR(@uid) + ' 
  941. ORDER BY [tid] DESC
  942.  ) AS [ttt]
  943. )
  944. ORDER BY [tid] DESC
  945. ORDER BY [tid] DESC'
  946. END
  947. EXEC(@strSQL)
  948. GO
  949. IF OBJECT_ID('dnt_getpmcount','P') IS NOT NULL
  950. DROP PROC dnt_getpmcount
  951. GO
  952. CREATE PROCEDURE dnt_getpmcount
  953. @userid int,
  954. @folder int=0,
  955. @state int=-1
  956. AS
  957. IF @folder=-1
  958. BEGIN
  959.   SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE ([msgtoid]=@userid AND [folder]=0) OR ([msgfromid] = @userid AND [folder] = 1) OR ([msgfromid] = @userid AND [folder] = 2)
  960. END
  961. ELSE
  962.     BEGIN
  963. IF @folder=0
  964. BEGIN
  965. IF @state=-1
  966. BEGIN
  967. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgtoid]=@userid AND [folder]=@folder
  968. END
  969. ELSE IF @state=2
  970. BEGIN
  971. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgtoid]=@userid AND [folder]=@folder AND [new]=1 AND GETDATE()-[postdatetime]<3
  972. END
  973. ELSE
  974. BEGIN
  975. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgtoid]=@userid AND [folder]=@folder AND [new]=@state
  976. END
  977. END
  978. ELSE
  979. BEGIN
  980. IF @state=-1
  981. BEGIN
  982. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgfromid]=@userid AND [folder]=@folder
  983. END
  984. ELSE IF @state=2
  985. BEGIN
  986. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgfromid]=@userid AND [folder]=@folder AND [new]=1 AND GETDATE()-[postdatetime]<3
  987. END
  988. ELSE
  989. BEGIN
  990. SELECT COUNT(pmid) AS [pmcount] FROM [dnt_pms] WHERE [msgfromid]=@userid AND [folder]=@folder AND [new]=@state
  991. END
  992. END
  993. END
  994. GO
  995. IF OBJECT_ID('dnt_getnoticecount','P') IS NOT NULL
  996. DROP PROC dnt_getnoticecount
  997. GO
  998. CREATE PROCEDURE dnt_getnoticecount
  999. @userid int,
  1000. @type int = -1,
  1001. @state int=-1
  1002. AS
  1003. IF @type = -1
  1004. BEGIN
  1005. IF @state = -1
  1006. BEGIN
  1007. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid
  1008. END
  1009. ELSE
  1010. BEGIN
  1011. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid AND [new]=@state
  1012. END
  1013. END
  1014. ELSE
  1015. BEGIN
  1016. IF @state = -1
  1017. BEGIN
  1018. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid AND [type]=@type
  1019. END
  1020. ELSE
  1021. BEGIN
  1022. SELECT COUNT(nid) AS [pmcount] FROM [dnt_notices] WHERE [uid]=@userid AND [new]=@state AND [type]=@type
  1023. END
  1024. END
  1025. GO
  1026. IF OBJECT_ID('dnt_getpmlist','P') IS NOT NULL
  1027. DROP PROC dnt_getpmlist
  1028. GO
  1029. CREATE PROCEDURE dnt_getpmlist
  1030. @userid int,
  1031. @folder int,
  1032. @pagesize int,
  1033. @pageindex int,
  1034. @inttype int
  1035. AS
  1036. DECLARE @strSQL varchar(5000)
  1037. DECLARE @msgformORtoID varchar(10)
  1038. SET @msgformortoid='msgtoid'
  1039. IF @folder=1 OR @folder=2
  1040. BEGIN
  1041. SET @msgformortoid='msgfromid'
  1042. END
  1043. IF @pageindex = 1
  1044. BEGIN
  1045. IF (@inttype <> 1)
  1046. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder)  + ' ORDER BY [pmid] DESC'
  1047. ELSE
  1048. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) + ' ORDER BY [pmid] DESC'
  1049. END
  1050. ELSE
  1051. BEGIN
  1052. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [pmid] < (SELECT MIN([pmid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [pmid] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) + ' ORDER BY [pmid] DESC) AS tblTmp) AND [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' + STR(@folder) + ' ORDER BY [pmid] DESC'
  1053. IF (@inttype <> 1)
  1054. BEGIN
  1055. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [pmid],[msgfrom],[msgfromid],[msgto],[msgtoid],[folder],[new],[subject],[postdatetime],[message] FROM [dnt_pms] WHERE [pmid] < (SELECT MIN([pmid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [pmid] FROM [dnt_pms] WHERE [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) + ' AND ' + ' ORDER BY [pmid] DESC) AS tblTmp) AND [' + @msgformortoid + ']=' +STR(@userid) + ' AND [folder]=' +STR(@folder) +  ' ORDER BY [pmid] DESC'
  1056. END
  1057. END
  1058. EXEC(@strSQL)
  1059. GO
  1060. IF OBJECT_ID('dnt_getpost1count','P') IS NOT NULL
  1061. DROP PROC dnt_getpost1count
  1062. GO
  1063. CREATE PROCEDURE dnt_getpost1count
  1064. @tid int
  1065. AS
  1066. SELECT COUNT(pid) FROM [dnt_posts1] WHERE [tid]=@tid AND [invisible]=0 AND layer>0
  1067. GO
  1068. IF OBJECT_ID('dnt_getpost1tree','P') IS NOT NULL
  1069. DROP PROC dnt_getpost1tree
  1070. GO
  1071. CREATE PROCEDURE dnt_getpost1tree
  1072. @tid int
  1073. AS
  1074. SELECT [pid], [layer], [title], [poster], [posterid],[postdatetime],[message] FROM [dnt_posts1] WHERE [tid]=@tid AND [invisible]=0 ORDER BY [parentid];
  1075. GO
  1076. IF OBJECT_ID('[dnt_getpostcountbycondition1]','P') IS NOT NULL
  1077. DROP PROC [dnt_getpostcountbycondition1]
  1078. GO
  1079. CREATE PROCEDURE [dnt_getpostcountbycondition1]
  1080. @tid int,
  1081. @posterid int
  1082. AS
  1083. SELECT COUNT(pid) FROM [dnt_posts1] WHERE [tid] = @tid AND [posterid] = @posterid  AND [layer]>=0
  1084. GO
  1085. IF OBJECT_ID('dnt_getshortuserinfo','P') IS NOT NULL
  1086. DROP PROC dnt_getshortuserinfo
  1087. GO
  1088. CREATE PROCEDURE dnt_getshortuserinfo
  1089. @uid int
  1090. AS
  1091. SELECT TOP 1 * FROM [dnt_users] WHERE [uid]=@uid
  1092. GO
  1093. if exists (select * from sysobjects where id = object_id(N'[dnt_getsinglepost1]') and OBJECTPROPERTY(id,N'IsProcedure') = 1)
  1094. drop procedure [dnt_getsinglepost1]
  1095. GO
  1096. CREATE PROCEDURE [dnt_getsinglepost1]
  1097.                     @tid int,
  1098.                     @pid int
  1099.                     AS
  1100.                     SELECT [aid], [tid], [pid], [postdatetime], [readperm], [filename], [description], [filetype], [filesize], [attachment], [downloads], [attachprice], [uid]  FROM [dnt_attachments] WHERE [tid]=@tid
  1101.                     SELECT TOP 1 
  1102.                                 [dnt_posts1].[pid], 
  1103.                                 [dnt_posts1].[fid], 
  1104.                                 [dnt_posts1].[title], 
  1105.                                 [dnt_posts1].[layer],
  1106.                                 [dnt_posts1].[message], 
  1107.                                 [dnt_posts1].[ip], 
  1108.                                 [dnt_posts1].[lastedit], 
  1109.                                 [dnt_posts1].[postdatetime], 
  1110.                                 [dnt_posts1].[attachment], 
  1111.                                 [dnt_posts1].[poster], 
  1112.                                 [dnt_posts1].[invisible], 
  1113.                                 [dnt_posts1].[usesig], 
  1114.                                 [dnt_posts1].[htmlon], 
  1115.                                 [dnt_posts1].[smileyoff], 
  1116.                                 [dnt_posts1].[parseurloff], 
  1117.                                 [dnt_posts1].[bbcodeoff], 
  1118.                                 [dnt_posts1].[rate], 
  1119.                                 [dnt_posts1].[ratetimes], 
  1120.                                 [dnt_posts1].[posterid], 
  1121.                                 [dnt_users].[nickname],  
  1122.                                 [dnt_users].[username], 
  1123.                                 [dnt_users].[groupid],
  1124.                                     [dnt_users].[spaceid],
  1125.                                     [dnt_users].[gender],
  1126. [dnt_users].[bday], 
  1127.                                 [dnt_users].[email], 
  1128.                                 [dnt_users].[showemail], 
  1129.                                 [dnt_users].[digestposts], 
  1130.                                 [dnt_users].[credits], 
  1131.                                 [dnt_users].[extcredits1], 
  1132.                                 [dnt_users].[extcredits2], 
  1133.                                 [dnt_users].[extcredits3], 
  1134.                                 [dnt_users].[extcredits4], 
  1135.                                 [dnt_users].[extcredits5], 
  1136.                                 [dnt_users].[extcredits6], 
  1137.                                 [dnt_users].[extcredits7], 
  1138.                                 [dnt_users].[extcredits8], 
  1139.                                 [dnt_users].[posts], 
  1140.                                 [dnt_users].[joindate], 
  1141.                                 [dnt_users].[onlinestate], 
  1142.                                 [dnt_users].[lastactivity], 
  1143.                                 [dnt_users].[invisible], 
  1144.                                 [dnt_userfields].[avatar], 
  1145.                                 [dnt_userfields].[avatarwidth], 
  1146.                                 [dnt_userfields].[avatarheight], 
  1147.                                 [dnt_userfields].[medals], 
  1148.                                 [dnt_userfields].[sightml] AS signature, 
  1149.                                 [dnt_userfields].[location], 
  1150.                                 [dnt_userfields].[customstatus], 
  1151.                                 [dnt_userfields].[website], 
  1152.                                 [dnt_userfields].[icq], 
  1153.                                 [dnt_userfields].[qq], 
  1154.                                 [dnt_userfields].[msn], 
  1155.                                 [dnt_userfields].[yahoo], 
  1156.                                 [dnt_userfields].[skype] 
  1157.                     FROM [dnt_posts1] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[dnt_posts1].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [dnt_posts1].[pid]=@pid
  1158. GO
  1159. IF OBJECT_ID('dnt_getsitemapnewtopics','P') IS NOT NULL
  1160. DROP PROC dnt_getsitemapnewtopics
  1161. GO
  1162. CREATE PROCEDURE dnt_getsitemapnewtopics
  1163. @fidlist VARCHAR(500)
  1164. AS
  1165. IF @fidlist<>''
  1166.      BEGIN
  1167.       DECLARE @strSQL VARCHAR(5000)
  1168.       SET @strSQL = 'SELECT TOP 20 [tid], [fid], [title], [poster], [postdatetime], [lastpost], [replies], [views], [digest] FROM [dnt_topics] WHERE [fid] 
  1169. NOT IN ('+@fidlist +') ORDER BY [tid] DESC' 
  1170.      END
  1171. ELSE
  1172.      BEGIN
  1173.       SET @strSQL = 'SELECT TOP 20 [tid], [fid], [title], [poster], [postdatetime], [lastpost], [replies], [views], [digest] FROM [dnt_topics] ORDER BY [tid] 
  1174. DESC'
  1175.      END
  1176.   EXEC(@strSQL)
  1177. GO
  1178. IF OBJECT_ID('dnt_gettopiccount','P') IS NOT NULL
  1179. DROP PROC dnt_gettopiccount
  1180. GO
  1181. CREATE PROCEDURE dnt_gettopiccount
  1182. @fid int
  1183. AS
  1184. SELECT [curtopics] FROM [dnt_forums] WHERE [fid]=@fid
  1185. GO
  1186. IF OBJECT_ID('dnt_gettopiccountbycondition','P') IS NOT NULL
  1187. DROP PROC dnt_gettopiccountbycondition
  1188. GO
  1189. CREATE PROCEDURE dnt_gettopiccountbycondition
  1190. @fid int,
  1191. @state int=0,
  1192. @condition varchar(80)=null
  1193. AS
  1194. DECLARE @sql varchar(500)
  1195. IF @state=-1
  1196. BEGIN
  1197. set @sql ='SELECT COUNT(tid) FROM [dnt_topics] WHERE [fid]='+str(@fid)+' AND [displayorder]>-1 AND [closed]<=1'+@condition
  1198. END
  1199. ELSE
  1200. BEGIN
  1201. set @sql ='SELECT COUNT(tid) FROM [dnt_topics] WHERE [fid]='+str(@fid)+' AND [displayorder]>-1 AND [closed]='+str(@state)+' AND [closed]<=1'+@condition
  1202. END
  1203. exec(@sql)
  1204. GO
  1205. IF OBJECT_ID('dnt_gettopiccountbytype','P') IS NOT NULL
  1206. DROP PROC dnt_gettopiccountbytype
  1207. GO
  1208. CREATE PROCEDURE dnt_gettopiccountbytype
  1209. @condition varchar(4000)
  1210. AS
  1211. DECLARE @sql varchar(4100)
  1212. set @sql ='SELECT COUNT(tid) FROM [dnt_topics] WHERE [displayorder]>-1 AND [closed]<=1 '+@condition
  1213. exec(@sql)
  1214. GO
  1215. IF OBJECT_ID('[dnt_gettopiclistbycondition]','P') IS NOT NULL
  1216. DROP PROC [dnt_gettopiclistbycondition]
  1217. GO
  1218. CREATE PROCEDURE [dnt_gettopiclistbycondition]
  1219. @fid int,
  1220. @pagesize int,
  1221. @pageindex int,
  1222. @startnum int,
  1223. @condition varchar(80)
  1224. AS
  1225. DECLARE @strSQL varchar(5000)
  1226. IF @pageindex = 1
  1227. BEGIN
  1228. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [rate],[tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1229. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1230. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1231. [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0' + @condition + ' ORDER BY [lastpostid] DESC'
  1232. END
  1233. ELSE
  1234. BEGIN
  1235. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'[rate], [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1236. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1237. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1238. [dnt_topics] WHERE [lastpostid] < (SELECT min([lastpostid])  FROM (SELECT TOP ' + STR
  1239. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE [fid]=' +STR
  1240. (@fid) + ' AND [displayorder]=0' + @condition + ' ORDER BY [lastpostid] DESC) AS tblTmp ) 
  1241. AND [fid]=' +STR(@fid) + ' AND [displayorder]=0' + @condition + ' ORDER BY [lastpostid] DESC'
  1242. END
  1243. EXEC(@strSQL)
  1244. GO
  1245. IF OBJECT_ID('[dnt_gettopiclist]','P') IS NOT NULL
  1246. DROP PROC [dnt_gettopiclist]
  1247. GO
  1248. CREATE PROCEDURE [dnt_gettopiclist]
  1249. @fid int,
  1250. @pagesize int,
  1251. @startnum int,
  1252. @pageindex int
  1253. AS
  1254. DECLARE @strSQL varchar(5000)
  1255. IF @pageindex = 1
  1256. BEGIN
  1257. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [rate],[tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1258. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1259. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1260. [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0  ORDER BY [lastpostid] DESC'
  1261. END
  1262. ELSE
  1263. BEGIN
  1264. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'[rate], [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1265. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1266. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[special] FROM 
  1267. [dnt_topics] WHERE [lastpostid] < (SELECT min([lastpostid])  FROM (SELECT TOP ' + STR
  1268. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE [fid]=' +STR
  1269. (@fid) + ' AND [displayorder]=0 ORDER BY [lastpostid] DESC) AS tblTmp ) 
  1270. AND [fid]=' +STR(@fid) + ' AND [displayorder]=0 ORDER BY [lastpostid] DESC'
  1271. END
  1272. EXEC(@strSQL)
  1273. GO
  1274. IF OBJECT_ID('dnt_gettopiclistbydate','P') IS NOT NULL
  1275. DROP PROC dnt_gettopiclistbydate
  1276. GO
  1277. CREATE PROCEDURE dnt_gettopiclistbydate
  1278. @fid int,
  1279. @pagesize int,
  1280. @pageindex int,
  1281. @startnum int,
  1282. @condition varchar(100),
  1283. @orderby varchar(100),
  1284. @ascdesc int
  1285. AS
  1286. DECLARE @strsql varchar(5000)
  1287. DECLARE @sorttype varchar(5)
  1288. IF @ascdesc=0
  1289.    SET @sorttype='ASC'
  1290. ELSE
  1291.    SET @sorttype='DESC'
  1292. IF @pageindex = 1
  1293. BEGIN
  1294. SET @strsql = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[title],[price],[typeid],[readperm],[hide],[special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1295. END
  1296. ELSE
  1297.            IF @sorttype='DESC'
  1298. BEGIN
  1299. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[title],[price],[typeid],[hide],[readperm],[special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] < (SELECT min(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+']  FROM [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype
  1300. END
  1301.       ELSE
  1302.              BEGIN
  1303. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[title],[price],[hide],[typeid],[readperm],[special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] > (SELECT MAX(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+'] FROM [dnt_topics] WHERE [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [fid]=' +STR(@fid) + ' AND [displayorder]=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1304.             END
  1305. EXEC(@strsql)
  1306. GO
  1307. IF OBJECT_ID('[dnt_gettopiclistbytag]','P') IS NOT NULL
  1308. DROP PROC [dnt_gettopiclistbytag]
  1309. GO
  1310. CREATE PROCEDURE [dnt_gettopiclistbytag]
  1311. @tagid int,
  1312. @pageindex int,
  1313. @pagesize int
  1314. AS
  1315. BEGIN
  1316. DECLARE @strSQL varchar(2000)
  1317. IF @pageindex = 1
  1318. BEGIN
  1319. SET @strSQL='SELECT TOP ' + STR(@pagesize) + ' [t].[tid], [t].[title],[t].[poster],[t].[posterid],[t].[fid],[t].[postdatetime],[t].[replies],[t].[views],[t].[lastposter],[t].[lastposterid],[t].[lastpost] 
  1320. FROM [dnt_topictags] AS [tt], [dnt_topics] AS [t] 
  1321. WHERE [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0 AND [tt].[tagid] = ' + STR(@tagid) + ' 
  1322. ORDER BY [t].[lastpostid] DESC'
  1323. END
  1324. ELSE
  1325. BEGIN
  1326. SET @strSQL='SELECT TOP ' + STR(@pagesize) + ' [t].[tid], [t].[title],[t].[poster],[t].[posterid],[t].[fid],[t].[postdatetime],[t].[replies],[t].[views],[t].[lastposter],[t].[lastposterid],[t].[lastpost] 
  1327. FROM [dnt_topictags] AS [tt], [dnt_topics] AS [t] 
  1328. WHERE [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0 AND [tt].[tagid] = ' + STR(@tagid) + ' 
  1329. AND [t].[lastpostid] < (SELECT MIN([lastpostid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' 
  1330. [lastpostid] FROM [dnt_topictags] AS [tt], [dnt_topics] AS [t] 
  1331. WHERE [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0 AND [tt].[tagid] = ' + STR(@tagid) + ' 
  1332. ORDER BY [t].[lastpostid] DESC) as tblTmp) 
  1333. ORDER BY [t].[lastpostid] DESC'
  1334. END
  1335. EXEC(@strSQL)
  1336. END
  1337. GO
  1338. IF OBJECT_ID('[dnt_gettopiclistbytype]','P') IS NOT NULL
  1339. DROP PROC [dnt_gettopiclistbytype]
  1340. GO
  1341. CREATE PROCEDURE [dnt_gettopiclistbytype]
  1342. @pagesize int,
  1343. @pageindex int,
  1344. @startnum int,
  1345. @condition varchar(1000),
  1346. @ascdesc int
  1347. AS
  1348. DECLARE @strSQL varchar(5000)
  1349. DECLARE @sorttype varchar(5)
  1350. IF @ascdesc=0
  1351.    SET @sorttype='ASC'
  1352. ELSE
  1353.    SET @sorttype='DESC'
  1354. IF @pageindex = 1
  1355. BEGIN
  1356. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1357. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1358. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM 
  1359. [dnt_topics] WHERE  [displayorder]>=0' + @condition + ' ORDER BY [lastpostid] '+@sorttype +',  [tid] '+@sorttype
  1360. END
  1361. ELSE
  1362. BEGIN
  1363. IF @sorttype='DESC'
  1364. BEGIN
  1365. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1366. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1367. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic],[rate] FROM 
  1368. [dnt_topics] WHERE [lastpostid] < (SELECT min([lastpostid])  FROM (SELECT TOP ' + STR
  1369. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE  [displayorder]>=0' + @condition + ' ORDER BY [tid] ' + @sorttype + ' , [lastpostid] ' + @sorttype + ') AS tblTmp ) 
  1370. AND  [displayorder]>=0' + @condition +'ORDER BY [lastpostid] ' + @sorttype + ' ,  [tid] ' + @sorttype
  1371. END
  1372. ELSE
  1373. BEGIN
  1374. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[price],[hide],[readperm],
  1375. [special],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],
  1376. [lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[attachment],[closed],[magic] FROM 
  1377. [dnt_topics] WHERE [lastpostid] > (SELECT MAX([lastpostid])  FROM (SELECT TOP ' + STR
  1378. ((@pageindex-1)*@pagesize-@startnum) + ' [lastpostid] FROM [dnt_topics] WHERE  [displayorder]>=0' + @condition + ' ORDER BY [tid] ' + @sorttype + ' , [lastpostid] ' + @sorttype + ') AS tblTmp ) 
  1379. AND  [displayorder]>=0' + @condition +'ORDER BY [lastpostid] ' + @sorttype + ' ,  [tid] ' + @sorttype
  1380. END
  1381. END
  1382. EXEC(@strSQL)
  1383. GO
  1384. IF OBJECT_ID('dnt_gettopiclistbytypedate','P') IS NOT NULL
  1385. DROP PROC dnt_gettopiclistbytypedate
  1386. GO
  1387. CREATE PROCEDURE dnt_gettopiclistbytypedate
  1388. @pagesize int,
  1389. @pageindex int,
  1390. @startnum int,
  1391. @condition varchar(1000),
  1392. @orderby varchar(100),
  1393. @ascdesc int
  1394. AS
  1395. DECLARE @strsql varchar(5000)
  1396. DECLARE @sorttype varchar(5)
  1397. IF @ascdesc=0
  1398.    SET @sorttype='ASC'
  1399. ELSE
  1400.    SET @sorttype='DESC'
  1401. IF @pageindex = 1
  1402. BEGIN
  1403. SET @strsql = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[special],[price],[hide],[readperm],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[highlight],[digest],[displayorder],[closed],[attachment],[magic],[rate] FROM [dnt_topics] WHERE [displayorder]>=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1404. END
  1405. ELSE
  1406.            IF @sorttype='DESC'
  1407. BEGIN
  1408. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[special],[price],[hide],[readperm],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[highlight],[digest],[displayorder],[closed],[attachment],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] < (SELECT min(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+']  FROM [dnt_topics] WHERE  [displayorder]>=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [displayorder]>=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype
  1409. END
  1410.       ELSE
  1411.              BEGIN
  1412. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +' [tid],[iconid],[typeid],[title],[special],[price],[hide],[readperm],[poster],[posterid],[replies],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[highlight],[digest],[displayorder],[closed],[attachment],[magic],[rate] FROM [dnt_topics] WHERE ['+@orderby+'] > (SELECT MAX(['+@orderby+']) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize-@startnum) + ' ['+@orderby+'] FROM [dnt_topics] WHERE [displayorder]>=0'+@condition+' ORDER BY  '+@orderby+' '+@sorttype+')AS tblTmp ) AND [displayorder]>=0'+@condition+' ORDER BY '+@orderby+' '+@sorttype
  1413.             END
  1414. EXEC(@strsql)
  1415. GO
  1416. IF OBJECT_ID('dnt_gettoptopiclist','P') IS NOT NULL
  1417. DROP PROC [dnt_gettoptopiclist]
  1418. GO
  1419. CREATE PROCEDURE dnt_gettoptopiclist
  1420. @fid int,
  1421. @pagesize int,
  1422. @pageindex int,
  1423. @tids varchar(500)
  1424. AS
  1425. DECLARE @strSQL varchar(5000)
  1426. IF @pageindex = 1
  1427. BEGIN
  1428. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + '[rate], [tid],[fid],[typeid],[iconid],[title],[price],[hide],[readperm], [special],[poster],[posterid],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[closed],[attachment],[magic] FROM [dnt_topics] WHERE [displayorder]>0 AND charindex('',''+CAST([tid] AS varchar(10))+'','' , '','+@tids+','')>0  ORDER BY [displayorder] DESC, [lastpost] DESC'
  1429. END
  1430. ELSE
  1431. BEGIN
  1432. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) + ' [rate], [tid],[fid],[typeid],[iconid],[title],[price],[hide],[readperm], [special],[poster],[posterid],[views],[postdatetime],[lastpost],[lastposter],[lastpostid],[lastposterid],[replies],[highlight],[digest],[displayorder],[closed],[attachment],[magic] FROM [dnt_topics]
  1433. WHERE (EXISTS   (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid]
  1434.                  FROM [dnt_topics]
  1435.                  WHERE [displayorder] > 0 AND  charindex('',''+CAST([tid] AS varchar(10))+'','' , '','+@tids+','')>0
  1436.                  ORDER BY [lastpost] DESC)) AND (displayorder > 0) AND 
  1437.       ( charindex('',''+CAST([tid] AS varchar(10))+'','' , '','+@tids+','')>0)
  1438. ORDER BY [displayorder] DESC, [lastpost] DESC'
  1439. END
  1440. EXEC(@strSQL)
  1441. GO
  1442. IF OBJECT_ID('[dnt_getuserinfo]','P') IS NOT NULL
  1443. DROP PROC [dnt_getuserinfo]
  1444. GO
  1445. CREATE PROCEDURE [dnt_getuserinfo]
  1446. @uid int
  1447. AS
  1448. SELECT TOP 1 
  1449. [dnt_users].[accessmasks], 
  1450. [dnt_users].[adminid],
  1451. [dnt_users].[avatarshowid],
  1452. [dnt_users].[bday],
  1453. [dnt_users].[credits],
  1454. [dnt_users].[digestposts],
  1455. [dnt_users].[email],
  1456. [dnt_users].[extcredits1],
  1457. [dnt_users].[extcredits2],
  1458. [dnt_users].[extcredits3],
  1459. [dnt_users].[extcredits4],
  1460. [dnt_users].[extcredits5],
  1461. [dnt_users].[extcredits6],
  1462. [dnt_users].[extcredits7],
  1463. [dnt_users].[extcredits8],
  1464. [dnt_users].[extgroupids],
  1465. [dnt_users].[gender],
  1466. [dnt_users].[groupexpiry],
  1467. [dnt_users].[groupid],
  1468. [dnt_users].[invisible],
  1469. [dnt_users].[joindate],
  1470. [dnt_users].[lastactivity],
  1471. [dnt_users].[lastip],
  1472. [dnt_users].[lastpost],
  1473. [dnt_users].[lastpostid],
  1474. [dnt_users].[lastposttitle],
  1475. [dnt_users].[lastvisit],
  1476. [dnt_users].[newpm],
  1477. [dnt_users].[newpmcount],
  1478. [dnt_users].[newsletter],
  1479. [dnt_users].[nickname],
  1480. [dnt_users].[oltime],
  1481. [dnt_users].[onlinestate],
  1482. [dnt_users].[pageviews],
  1483. [dnt_users].[password],
  1484. [dnt_users].[pmsound],
  1485. [dnt_users].[posts],
  1486. [dnt_users].[ppp],
  1487. [dnt_users].[regip],
  1488. [dnt_users].[secques],
  1489. [dnt_users].[showemail],
  1490. [dnt_users].[sigstatus],
  1491. [dnt_users].[spaceid],
  1492. [dnt_users].[templateid],
  1493. [dnt_users].[tpp],
  1494. [dnt_users].[uid],
  1495. [dnt_users].[username],
  1496. [dnt_users].[salt],
  1497. [dnt_userfields].[authflag],
  1498. [dnt_userfields].[authstr],
  1499. [dnt_userfields].[authtime],
  1500. [dnt_userfields].[avatar],
  1501. [dnt_userfields].[avatarheight],
  1502. [dnt_userfields].[avatarwidth],
  1503. [dnt_userfields].[bio],
  1504. [dnt_userfields].[customstatus],
  1505. [dnt_userfields].[icq],
  1506. [dnt_userfields].[idcard],
  1507. [dnt_userfields].[ignorepm],
  1508. [dnt_userfields].[location],
  1509. [dnt_userfields].[medals],
  1510. [dnt_userfields].[mobile],
  1511. [dnt_userfields].[msn],
  1512. [dnt_userfields].[phone],
  1513. [dnt_userfields].[qq],
  1514. [dnt_userfields].[realname],
  1515. [dnt_userfields].[sightml],
  1516. [dnt_userfields].[signature],
  1517. [dnt_userfields].[skype],
  1518. [dnt_userfields].[uid],
  1519. [dnt_userfields].[website],
  1520. [dnt_userfields].[yahoo]
  1521. FROM [dnt_users] LEFT JOIN [dnt_userfields] ON [dnt_users].[uid]=[dnt_userfields].[uid] 
  1522. WHERE [dnt_users].[uid]=@uid
  1523. GO
  1524. IF OBJECT_ID('dnt_getuserlist','P') IS NOT NULL
  1525. DROP PROC [dnt_getuserlist]
  1526. GO
  1527. CREATE PROCEDURE [dnt_getuserlist]
  1528. @pagesize int,
  1529. @pageindex int,
  1530. @column varchar(20),
  1531. @ordertype AS varchar(5)
  1532. AS
  1533. DECLARE @pagetop int
  1534. DECLARE @sql varchar(1000)
  1535. SET @pagetop = (@pageindex-1)*@pagesize
  1536. IF @column = 'uid'
  1537. BEGIN
  1538. SET @column = '[dnt_users].[uid]'
  1539. END
  1540. IF @pageindex = 1
  1541. BEGIN
  1542. SET @sql = 'SELECT TOP ' + CAST(@pagesize AS varchar(10)) + ' [dnt_users].[uid], 
  1543. [dnt_users].[groupid],
  1544. [dnt_users].[username], 
  1545. [dnt_users].[nickname], 
  1546. [dnt_users].[joindate], 
  1547. [dnt_users].[credits], 
  1548. [dnt_users].[posts], 
  1549. [dnt_users].[lastactivity], 
  1550. [dnt_users].[email], 
  1551. [dnt_users].[oltime], 
  1552. [dnt_userfields].[location] 
  1553. FROM [dnt_users] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid] = [dnt_users].[uid] ORDER BY ' + @column + ' ' + @ordertype
  1554. END
  1555. ELSE
  1556. BEGIN
  1557. SET @sql = 'SELECT TOP ' + CAST(@pagesize AS varchar(10)) + ' [dnt_users].[uid], 
  1558. [dnt_users].[groupid], 
  1559. [dnt_users].[username], 
  1560. [dnt_users].[nickname], 
  1561. [dnt_users].[joindate], 
  1562. [dnt_users].[credits], 
  1563. [dnt_users].[posts], 
  1564. [dnt_users].[email], 
  1565. [dnt_users].[lastactivity], 
  1566. [dnt_users].[oltime], 
  1567. [dnt_userfields].[location] 
  1568. FROM [dnt_users] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid] = [dnt_users].[uid] WHERE [dnt_users].[uid] NOT IN (SELECT TOP ' + CAST(@pagetop AS varchar(10)) + ' [uid] FROM [dnt_users] ORDER BY ' + @column + ' ' + @ordertype + ')ORDER BY '+ @column + ' ' + @ordertype
  1569. END
  1570. EXEC(@sql)
  1571. GO
  1572. IF OBJECT_ID('[dnt_neatenrelatetopic]','P') IS NOT NULL
  1573. DROP PROC [dnt_neatenrelatetopic]
  1574. GO
  1575. CREATE PROCEDURE [dnt_neatenrelatetopic]
  1576. AS
  1577. BEGIN
  1578. DECLARE @tagid int
  1579. DECLARE [tag_cursor] CURSOR FOR
  1580. SELECT DISTINCT [tagid] FROM [dnt_topictags]
  1581. OPEN [tag_cursor]
  1582. FETCH NEXT FROM [tag_cursor] INTO @tagid
  1583. WHILE @@FETCH_STATUS = 0
  1584. BEGIN
  1585. INSERT INTO [dnt_topictagcaches] 
  1586. SELECT [t1].[tid],[t2].[tid],[t2].[title] FROM (SELECT [tid] FROM [dnt_topictags]
  1587. WHERE [tagid] = @tagid) AS [t1],(SELECT [t].[tid],[t].[title] FROM [dnt_topics] AS [t],[dnt_topictags] AS [tt] 
  1588. WHERE [tt].[tagid] = @tagid AND [t].[tid] = [tt].[tid] AND [t].[displayorder] >=0) AS [t2] 
  1589. WHERE [t1].[tid] <> [t2].[tid] AND NOT EXISTS (SELECT 1 FROM [dnt_topictagcaches] WHERE [tid]=[t1].[tid] AND [linktid]=[t2].[tid])
  1590. FETCH NEXT FROM [tag_cursor] INTO @tagid
  1591. END;
  1592. CLOSE [tag_cursor]
  1593. DEALLOCATE [tag_cursor]
  1594. END
  1595. GO
  1596. IF OBJECT_ID('[dnt_revisedebatetopicdiggs]','P') IS NOT NULL
  1597. DROP PROC [dnt_revisedebatetopicdiggs]
  1598. GO
  1599. CREATE PROCEDURE [dnt_revisedebatetopicdiggs]
  1600. @tid int,
  1601. @opinion int,
  1602. @count int out
  1603. AS
  1604. BEGIN
  1605. SELECT @count=COUNT(1) FROM [dnt_postdebatefields] WHERE [tid] = @tid AND [opinion] = @opinion
  1606. IF @opinion=1
  1607. BEGIN
  1608. UPDATE [dnt_debates] SET [positivediggs]=(SELECT SUM(diggs + 1) FROM [dnt_postdebatefields] WHERE [tid] = @tid AND [opinion] = @opinion) WHERE [tid] = @tid
  1609. END
  1610. ELSE
  1611. BEGIN
  1612. UPDATE [dnt_debates] SET [negativediggs]=(SELECT SUM(diggs + 1) FROM [dnt_postdebatefields] WHERE [tid] = @tid AND [opinion] = @opinion) WHERE [tid] = @tid
  1613. END
  1614. END
  1615. GO
  1616. IF OBJECT_ID('[dnt_setlastexecutescheduledeventdatetime]','P') IS NOT NULL
  1617. DROP PROC [dnt_setlastexecutescheduledeventdatetime]
  1618. GO
  1619. CREATE PROCEDURE [dnt_setlastexecutescheduledeventdatetime]
  1620. (
  1621. @key VARCHAR(100),
  1622. @servername VARCHAR(100),
  1623. @lastexecuted DATETIME
  1624. )
  1625. AS
  1626. DELETE FROM [dnt_scheduledevents] WHERE ([key]=@key) AND ([lastexecuted] < DATEADD([day], - 7, GETDATE()))
  1627. INSERT [dnt_scheduledevents] ([key], [servername], [lastexecuted]) Values (@key, @servername, @lastexecuted)
  1628. GO
  1629. IF OBJECT_ID('dnt_shrinklog','P') IS NOT NULL
  1630. DROP PROC dnt_shrinklog
  1631. GO
  1632. CREATE PROCEDURE dnt_shrinklog  
  1633. @DBName  nchar(50) 
  1634. AS
  1635. Begin
  1636. exec('BACKUP LOG ['+@DBName+']  WITH NO_LOG')
  1637. exec('DBCC  SHRINKDATABASE(['+@DBName+'])')
  1638. End
  1639. GO
  1640. IF OBJECT_ID('dnt_updateadmingroup','P') IS NOT NULL
  1641. DROP PROC dnt_updateadmingroup
  1642. GO
  1643. CREATE PROCEDURE dnt_updateadmingroup
  1644. @admingid smallint,
  1645. @alloweditpost tinyint,
  1646. @alloweditpoll tinyint,
  1647. @allowstickthread tinyint,
  1648. @allowmodpost tinyint,
  1649. @allowdelpost tinyint,
  1650. @allowmassprune tinyint,
  1651. @allowrefund tinyint,
  1652. @allowcensorword tinyint,
  1653. @allowviewip tinyint,
  1654. @allowbanip tinyint,
  1655. @allowedituser tinyint,
  1656. @allowmoduser tinyint,
  1657. @allowbanuser tinyint,
  1658. @allowpostannounce tinyint,
  1659. @allowviewlog tinyint,
  1660. @disablepostctrl tinyint,
  1661. @allowviewrealname tinyint
  1662. AS
  1663. UPDATE dnt_admingroups SET 
  1664. [alloweditpost]=@alloweditpost,
  1665. [alloweditpoll]=@alloweditpoll,
  1666. [allowstickthread]=@allowstickthread,
  1667. [allowmodpost]=@allowmodpost,
  1668. [allowdelpost]=@allowdelpost,
  1669. [allowmassprune]=@allowmassprune,
  1670. [allowrefund]=@allowrefund,
  1671. [allowcensorword]=@allowcensorword,
  1672. [allowviewip]=@allowviewip,
  1673. [allowbanip]=@allowbanip,
  1674. [allowedituser]=@allowedituser,
  1675. [allowmoduser]=@allowmoduser,
  1676. [allowbanuser]=@allowbanuser,
  1677. [allowpostannounce]=@allowpostannounce,
  1678. [allowviewlog]=@allowviewlog,
  1679. [disablepostctrl]=@disablepostctrl,
  1680. [allowviewrealname]=@allowviewrealname
  1681. WHERE [admingid]=@admingid
  1682. GO
  1683. IF OBJECT_ID('dnt_updatepost1','P') IS NOT NULL
  1684. DROP PROC dnt_updatepost1
  1685. GO
  1686. CREATE PROCEDURE dnt_updatepost1
  1687. @pid int,
  1688. @title nvarchar(160),
  1689. @message ntext,
  1690. @lastedit nvarchar(50),
  1691. @invisible int,
  1692. @usesig int,
  1693. @htmlon int,
  1694. @smileyoff int,
  1695. @bbcodeoff int,
  1696. @parseurloff int
  1697. AS
  1698. UPDATE dnt_posts1 SET 
  1699. [title]=@title,
  1700. [message]=@message,
  1701. [lastedit]=@lastedit,
  1702. [invisible]=@invisible,
  1703. [usesig]=@usesig,
  1704. [htmlon]=@htmlon,
  1705. [smileyoff]=@smileyoff,
  1706. [bbcodeoff]=@bbcodeoff,
  1707. [parseurloff]=@parseurloff WHERE [pid]=@pid
  1708. GO
  1709. IF OBJECT_ID('dnt_updatetopic','P') IS NOT NULL
  1710. DROP PROC dnt_updatetopic
  1711. GO
  1712. CREATE PROCEDURE dnt_updatetopic
  1713. @tid int,
  1714. @fid smallint,
  1715. @iconid smallint,
  1716. @title nchar(60),
  1717. @typeid smallint,
  1718. @readperm int,
  1719. @price smallint,
  1720. @poster char(20),
  1721. @posterid int,
  1722. @postdatetime smalldatetime,
  1723. @lastpostid int,
  1724. @lastpost smalldatetime,
  1725. @lastposter char(20),
  1726. @replies int,
  1727. @displayorder int,
  1728. @highlight varchar(500),
  1729. @digest int,
  1730. @rate int,
  1731. @hide int,
  1732.         @special int,
  1733. @attachment int,
  1734. @moderated int,
  1735. @closed int,
  1736. @magic int
  1737. AS
  1738. UPDATE dnt_topics SET
  1739. [fid]=@fid,
  1740. [iconid]=@iconid,
  1741. [title]=@title,
  1742. [typeid]=@typeid,
  1743. [readperm]=@readperm,
  1744. [price]=@price,
  1745. [poster]=@poster,
  1746. [posterid]=@posterid,
  1747. [postdatetime]=@postdatetime,
  1748. [lastpostid]=@lastpostid,
  1749. [lastpost]=@lastpost,
  1750. [lastposter]=@lastposter,
  1751. [replies]=@replies,
  1752. [displayorder]=@displayorder,
  1753. [highlight]=@highlight,
  1754. [digest]=@digest,
  1755. [rate]=@rate,
  1756. [hide]=@hide,
  1757.     [special]=@special,
  1758. [attachment]=@attachment,
  1759. [moderated]=@moderated,
  1760. [closed]=@closed,
  1761. [magic]=@magic WHERE [tid]=@tid 
  1762. GO
  1763. IF OBJECT_ID('dnt_updatetopicviewcount','P') IS NOT NULL
  1764. DROP PROC dnt_updatetopicviewcount
  1765. GO
  1766. CREATE PROCEDURE dnt_updatetopicviewcount
  1767. @tid int,
  1768. @viewcount int
  1769. AS
  1770. UPDATE [dnt_topics]  SET [views]= [views] + @viewcount WHERE [tid]=@tid
  1771. GO
  1772. IF OBJECT_ID('dnt_updateuserauthstr','P') IS NOT NULL
  1773. DROP PROC dnt_updateuserauthstr
  1774. GO
  1775. CREATE PROCEDURE dnt_updateuserauthstr
  1776. @uid int,
  1777. @authstr char(20),
  1778. @authflag int =1
  1779. AS
  1780. UPDATE [dnt_userfields] SET [authstr]=@authstr, [authtime] = getdate(), [authflag]=@authflag WHERE [uid]=@uid
  1781. GO
  1782. IF OBJECT_ID('[dnt_updateuserforumsetting]','P') IS NOT NULL
  1783. DROP PROC [dnt_updateuserforumsetting]
  1784. GO
  1785. CREATE PROCEDURE [dnt_updateuserforumsetting]
  1786. @uid int,
  1787. @tpp int,
  1788. @ppp int,
  1789. @invisible int,
  1790. @customstatus varchar(30)
  1791. AS
  1792. UPDATE [dnt_users] SET [tpp]=@tpp, [ppp]=@ppp, [invisible]=@invisible WHERE [uid]=@uid
  1793. UPDATE [dnt_userfields] SET [customstatus]=@customstatus WHERE [uid]=@uid
  1794. GO
  1795. IF OBJECT_ID('dnt_updateuserpassword','P') IS NOT NULL
  1796. DROP PROC dnt_updateuserpassword
  1797. GO
  1798. CREATE PROCEDURE dnt_updateuserpassword
  1799. @uid int,
  1800. @password char(44)
  1801. AS
  1802. UPDATE [dnt_users] SET [password]=@password WHERE [uid]=@uid
  1803. GO
  1804. IF OBJECT_ID('dnt_updateuserpreference','P') IS NOT NULL
  1805. DROP PROC dnt_updateuserpreference
  1806. GO
  1807. CREATE PROCEDURE dnt_updateuserpreference
  1808. @uid int,
  1809. @avatar varchar(255),
  1810. @avatarwidth int,
  1811. @avatarheight int,
  1812. @templateid int
  1813. AS
  1814. UPDATE [dnt_userfields] SET [avatar]=@avatar, [avatarwidth]=@avatarwidth, [avatarheight]=@avatarheight WHERE [uid]=@uid
  1815. UPDATE [dnt_users] SET [templateid]=@templateid WHERE [uid]=@uid
  1816. GO
  1817. IF OBJECT_ID('[dnt_updateuserprofile]','P') IS NOT NULL
  1818. DROP PROC [dnt_updateuserprofile]
  1819. GO
  1820. CREATE PROCEDURE [dnt_updateuserprofile]
  1821. @uid int,
  1822. @nickname nchar(20),
  1823. @gender int,
  1824. @email char(50),
  1825. @bday char(10),
  1826. @showemail int,
  1827. @website nvarchar(80),
  1828. @icq varchar(12),
  1829. @qq varchar(12),
  1830. @yahoo varchar(40),
  1831. @msn varchar(40),
  1832. @skype varchar(40),
  1833. @location nvarchar(30),
  1834. @bio nvarchar(500),
  1835. @signature nvarchar(500),
  1836. @sigstatus int,
  1837. @sightml nvarchar(1000),
  1838. @realname nvarchar(10),
  1839. @idcard varchar(20),
  1840. @mobile varchar(20),
  1841. @phone varchar(20)
  1842. AS
  1843. UPDATE [dnt_users] SET [nickname]=@nickname, [gender]=@gender , [email]=@email , [bday]=@bday, [sigstatus]=@sigstatus, [showemail]=@showemail WHERE [uid]=@uid
  1844. UPDATE [dnt_userfields] SET [website]=@website , [icq]=@icq , [qq]=@qq , [yahoo]=@yahoo , [msn]=@msn , [skype]=@skype , [location]=@location , [bio]=@bio, [signature]=@signature, [sightml]=@sightml, [realname]=@realname,[idcard]=@idcard,[mobile]=@mobile,[phone]=@phone  WHERE [uid]=@uid
  1845. GO
  1846. IF OBJECT_ID('dnt_getforumnewtopics','P') IS NOT NULL
  1847. DROP PROC dnt_getforumnewtopics
  1848. GO
  1849. CREATE PROCEDURE dnt_getforumnewtopics
  1850. @fid int
  1851. AS
  1852. SELECT TOP 20 [dnt_topics].[tid],[dnt_topics].[title],[dnt_topics].[poster],[dnt_topics].[postdatetime],[dnt_posts1].[message] FROM [dnt_topics] LEFT JOIN [dnt_posts1] ON [dnt_topics].[tid]=[dnt_posts1].[tid]  WHERE [dnt_posts1].[layer]=0 AND  [dnt_topics].[fid]=@fid ORDER BY [lastpost] DESC
  1853. GO
  1854. IF OBJECT_ID('[dnt_createtopictags]','P') IS NOT NULL
  1855. DROP PROC [dnt_createtopictags]
  1856. GO
  1857. CREATE PROCEDURE [dnt_createtopictags]
  1858. @tags nvarchar(55),
  1859. @tid int,
  1860. @userid int,
  1861. @postdatetime datetime
  1862. AS
  1863. BEGIN
  1864. exec [dnt_createtags] @tags, @userid, @postdatetime
  1865. UPDATE [dnt_tags] SET [fcount]=[fcount]+1,[count]=[count]+1
  1866. WHERE EXISTS (SELECT [item] FROM [dnt_split](@tags, ' ') AS [newtags] WHERE [newtags].[item] = [tagname])
  1867. INSERT INTO [dnt_topictags] (tagid, tid)
  1868. SELECT tagid, @tid FROM [dnt_tags] WHERE EXISTS (SELECT * FROM [dnt_split](@tags, ' ') WHERE [item] = [dnt_tags].[tagname])
  1869. END
  1870. GO
  1871. IF OBJECT_ID('dnt_getfavoriteslistbyalbum','P') IS NOT NULL
  1872. DROP PROC dnt_getfavoriteslistbyalbum
  1873. GO
  1874. CREATE PROCEDURE dnt_getfavoriteslistbyalbum
  1875. @uid int,
  1876. @pagesize int,
  1877. @pageindex int
  1878. AS
  1879. DECLARE @strSQL varchar(5000)
  1880. SET @strSQL='SELECT [f].[tid], [f].[uid], [albumid], [albumcateid], [userid] AS [posterid], [username] AS [poster], [title], [description], [logo], [password], [imgcount], [views], [type], [createdatetime] AS [postdatetime] FROM [dnt_favorites] [f],[dnt_albums] [albums] WHERE [f].[tid]=[albums].[albumid] AND [f].[typeid]=1 AND [f].[uid]=' + STR(@uid)
  1881. IF @pageindex = 1
  1882. BEGIN
  1883. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [tid], [uid], [albumid], [albumcateid], [posterid], [poster], [title], [description], [logo], [password], [imgcount], [views], [type], [postdatetime]  FROM (' + @strSQL + ') f' + '  ORDER BY [tid] DESC'
  1884. END
  1885. ELSE
  1886. BEGIN
  1887. SET @strSQL = 'SELECT TOP ' + STR(@pagesize) +'  [tid], [uid], [albumid], [albumcateid], [posterid], [poster], [title], [description], [logo], [password], [imgcount], [views], [type], [postdatetime]  FROM (' + @strSQL + ') f1 WHERE [tid] < (SELECT MIN([tid]) FROM (SELECT TOP ' + STR((@pageindex-1)*@pagesize) + ' [tid] FROM (' + @strSQL + ') f2' + '  ORDER BY [tid] DESC) AS tblTmp)' + '  ORDER BY [tid] DESC'
  1888. END
  1889. EXEC(@strSQL)
  1890. GO
  1891. if exists(select * from sysobjects where id=object_id(N'[dnt_getnewtopics1]')and OBJECTPROPERTY(id,N'IsProcedure') = 1) 
  1892. drop procedure [dnt_getnewtopics1]
  1893. GO
  1894. CREATE PROCEDURE [dnt_getnewtopics1]
  1895. @fidlist VARCHAR(500)
  1896. AS
  1897. IF @fidlist <> ''
  1898. BEGIN
  1899. SELECT TOP 20 
  1900. [dnt_posts1].[tid], 
  1901.         [dnt_posts1].[title], 
  1902.         [dnt_posts1].[poster], 
  1903.         [dnt_posts1].[postdatetime], 
  1904.         [dnt_posts1].[message],
  1905.         [dnt_forums].[name] 
  1906.         FROM [dnt_posts1]  
  1907.         LEFT JOIN [dnt_forums] ON [dnt_posts1].[fid]=[dnt_forums].[fid]
  1908.         LEFT JOIN [dnt_topics] ON [dnt_posts1].[tid]=[dnt_topics].[tid]
  1909.         WHERE CHARINDEX(','+RTRIM([dnt_forums].[fid])+',', ','+@fidlist+',') > 0 
  1910.         AND [dnt_posts1].[layer]=0 AND [dnt_topics].[displayorder] >= 0
  1911.         ORDER BY [dnt_posts1].[tid] DESC
  1912.     END 
  1913.     ELSE
  1914.     BEGIN
  1915. SELECT TOP 20 
  1916. [dnt_posts1].[tid], 
  1917.         [dnt_posts1].[title], 
  1918.         [dnt_posts1].[poster], 
  1919.         [dnt_posts1].[postdatetime], 
  1920.         [dnt_posts1].[message],
  1921.         [dnt_forums].[name] 
  1922.         FROM [dnt_posts1]
  1923.         LEFT JOIN [dnt_forums] ON [dnt_posts1].[fid]=[dnt_forums].[fid]
  1924.         LEFT JOIN [dnt_topics] ON [dnt_posts1].[tid]=[dnt_topics].[tid]
  1925.         WHERE [dnt_posts1].[layer]=0 AND [dnt_topics].[displayorder] >= 0
  1926.         ORDER BY [dnt_posts1].[tid] DESC
  1927.     END
  1928. GO
  1929. IF OBJECT_ID('[dnt_getattentiontopics]','P') IS NOT NULL
  1930. DROP PROC [dnt_getattentiontopics]
  1931. GO
  1932. CREATE PROCEDURE [dnt_getattentiontopics] 
  1933. @fid varchar(255)='',
  1934. @tpp int,
  1935. @pageid int,
  1936. @condition nvarchar(255)=''
  1937. AS
  1938. DECLARE @pagetop int,@strSQL varchar(5000)
  1939. SET @pagetop = (@pageid-1)*@tpp
  1940. IF @pageid = 1
  1941. BEGIN
  1942. SET @strSQL = 'SELECT TOP  ' +STR( @tpp) + '  * FROM [dnt_topics] WHERE [displayorder]>=0  AND [attention]=1'
  1943.                      
  1944. IF @fid<>'0'
  1945.                             SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
  1946.                             IF @condition<>''
  1947.                             SELECT  @strSQL=@strSQL+@condition
  1948.                            SELECT @strSQL=@strSQL+'  ORDER BY [lastpost] DESC'
  1949.                             
  1950.       
  1951. END
  1952. ELSE
  1953. BEGIN
  1954. SET @strSQL = 'SELECT TOP  ' +STR( @tpp) + '  * FROM [dnt_topics]  WHERE [tid] < (SELECT MIN([tid])  FROM (SELECT TOP '+STR(@pagetop)+' [tid] FROM [dnt_topics]   WHERE [displayorder]>=0  AND [attention]=1'
  1955.  IF @fid<>'0'
  1956.  
  1957.                             SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
  1958.                           
  1959.                             IF @condition<>''
  1960.                             SELECT  @strSQL=@strSQL+@condition
  1961.                      
  1962.                           SELECT @strSQL=@strSQL+'   ORDER BY [tid] DESC'
  1963.                           SELECT @strSQL=@strSQL+'  )  AS T) '
  1964.  IF @fid<>'0'
  1965.  
  1966.                            SELECT  @strSQL=@strSQL+'  AND [fid] IN ('+@fid+')'
  1967.     IF @condition<>''
  1968.                             SELECT  @strSQL=@strSQL+@condition
  1969.                            SELECT @strSQL=@strSQL+'  AND [displayorder]>=0  AND [attention]=1 ORDER BY [tid] DESC'
  1970.                                  
  1971. END
  1972. EXEC(@strSQL)
  1973. GO
  1974. IF OBJECT_ID('[dnt_updateuser]','P') IS NOT NULL
  1975. DROP PROC [dnt_updateuser]
  1976. GO
  1977. CREATE PROCEDURE [dnt_updateuser]
  1978. @username nchar(20),
  1979. @nickname nchar(20),
  1980. @password char(32),
  1981. @secques char(8),
  1982. @spaceid int,
  1983. @gender int,
  1984. @adminid int,
  1985. @groupid smallint,
  1986. @groupexpiry int,
  1987. @extgroupids char(60),
  1988. @regip char(15),
  1989. @joindate char(19),
  1990. @lastip char(15),
  1991. @lastvisit char(19),
  1992. @lastactivity char(19),
  1993. @lastpost char(19),
  1994. @lastpostid int,
  1995. @lastposttitle nchar(60),
  1996. @posts int,
  1997. @digestposts smallint,
  1998. @oltime int,
  1999. @pageviews int,
  2000. @credits int,
  2001. @extcredits1 float,
  2002. @extcredits2 float,
  2003. @extcredits3 float,
  2004. @extcredits4 float,
  2005. @extcredits5 float,
  2006. @extcredits6 float,
  2007. @extcredits7 float,
  2008. @extcredits8 float,
  2009. @avatarshowid int,
  2010. @email char(50),
  2011. @bday char(19),
  2012. @sigstatus int,
  2013. @tpp int,
  2014. @ppp int,
  2015. @templateid smallint,
  2016. @pmsound int,
  2017. @showemail int,
  2018. @newsletter int,
  2019. @invisible int,
  2020. @newpm int,
  2021. @newpmcount int,
  2022. @accessmasks int,
  2023. @onlinestate int,
  2024. @website varchar(80),
  2025. @icq varchar(12),
  2026. @qq varchar(12),
  2027. @yahoo varchar(40),
  2028. @msn varchar(40),
  2029. @skype varchar(40),
  2030. @location nvarchar(30),
  2031. @customstatus varchar(30),
  2032. @avatar varchar(255),
  2033. @avatarwidth int,
  2034. @avatarheight int,
  2035. @medals varchar(300),
  2036. @bio nvarchar(500),
  2037. @signature nvarchar(500),
  2038. @sightml nvarchar(1000),
  2039. @authstr varchar(20),
  2040. @authtime smalldatetime,
  2041. @authflag tinyint,
  2042. @realname nvarchar(10),
  2043. @idcard varchar(20),
  2044. @mobile varchar(20),
  2045. @phone varchar(20),
  2046. @ignorepm nvarchar(1000),
  2047. @uid int
  2048. AS
  2049. UPDATE [dnt_users] SET [username]=@username,[nickname]=@nickname, [password]=@password, [secques]=@secques, [spaceid]=@spaceid, [gender]=@gender, [adminid]=@adminid, [groupid]=@groupid, [groupexpiry]=@groupexpiry, 
  2050. [extgroupids]=@extgroupids, [regip]= @regip, [joindate]= @joindate, [lastip]=@lastip, [lastvisit]=@lastvisit, [lastactivity]=@lastactivity, [lastpost]=@lastpost, 
  2051. [lastpostid]=@lastpostid, [lastposttitle]=@lastposttitle, [posts]=@posts, [digestposts]=@digestposts, [oltime]=@oltime, [pageviews]=@pageviews, [credits]=@credits, 
  2052. [extcredits1]=@extcredits1, [extcredits2]=@extcredits2, [extcredits3]=@extcredits3, [extcredits4]=@extcredits4, [extcredits5]=@extcredits5, [extcredits6]=@extcredits6, 
  2053. [extcredits7]=@extcredits7, [extcredits8]=@extcredits8, [avatarshowid]=@avatarshowid, [email]=@email, [bday]=@bday, [sigstatus]=@sigstatus, [tpp]=@tpp, [ppp]=@ppp, 
  2054. [templateid]=@templateid, [pmsound]=@pmsound, [showemail]=@showemail, [newsletter]=@newsletter, [invisible]=@invisible, [newpm]=@newpm, [newpmcount]=@newpmcount, [accessmasks]=@accessmasks, [onlinestate]=@onlinestate 
  2055. WHERE [uid]=@uid
  2056. UPDATE [dnt_userfields] SET [website]=@website,[icq]=@icq,[qq]=@qq,[yahoo]=@yahoo,[msn]=@msn,[skype]=@skype,[location]=@location,[customstatus]=@customstatus,
  2057. [avatar]=@avatar,[avatarwidth]=@avatarwidth,[avatarheight]=@avatarheight,[medals]=@medals,[bio]=@bio,[signature]=@signature,[sightml]=@sightml,[authstr]=@authstr,
  2058. [authtime]=@authtime,[authflag]=@authflag,[realname]=@realname,[idcard]=@idcard,[mobile]=@mobile,[phone]=@phone,[ignorepm]=@ignorepm 
  2059. WHERE [uid]=@uid
  2060. GO
  2061. IF OBJECT_ID('[dnt_split]') IS NOT NULL
  2062. DROP FUNCTION [dnt_split]
  2063. GO
  2064. CREATE FUNCTION [dnt_split]
  2065. (
  2066.  @splitstring NVARCHAR(4000),
  2067.  @separator CHAR(1) = ','
  2068. )
  2069. RETURNS @splitstringstable TABLE
  2070. (
  2071.  [item] NVARCHAR(200)
  2072. )
  2073. AS
  2074. BEGIN
  2075.     DECLARE @currentindex INT
  2076.     DECLARE @nextindex INT
  2077.     DECLARE @returntext NVARCHAR(200)
  2078.     SELECT @currentindex=1
  2079.     WHILE(@currentindex<=datalength(@splitstring)/2)
  2080.     BEGIN
  2081.         SELECT @nextindex=charindex(@separator,@splitstring,@currentindex)
  2082.         IF(@nextindex=0 OR @nextindex IS NULL)
  2083.             SELECT @nextindex=datalength(@splitstring)/2+1
  2084.         
  2085.         SELECT @returntext=substring(@splitstring,@currentindex,@nextindex-@currentindex)
  2086.         INSERT INTO @splitstringstable([item])
  2087.         VALUES(@returntext)
  2088.         
  2089.         SELECT @currentindex=@nextindex+1
  2090.     END
  2091.     RETURN
  2092. END
  2093. GO
  2094. if exists (select * from sysobjects where id = object_id(N'[dnt_getindexforumlist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2095. drop procedure [dnt_getindexforumlist]
  2096. GO
  2097. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2098. drop procedure [dnt_getonlineuser]
  2099. GO
  2100. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuserlist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2101. drop procedure [dnt_getonlineuserlist]
  2102. GO
  2103. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuserlistbyfid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2104. drop procedure [dnt_getonlineuserlistbyfid]
  2105. GO
  2106. if exists (select * from sysobjects where id = object_id(N'[dnt_getrelatedtopics]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2107. drop procedure [dnt_getrelatedtopics]
  2108. GO
  2109. if exists (select * from sysobjects where id = object_id(N'[dnt_gettopicinfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2110. drop procedure [dnt_gettopicinfo]
  2111. GO
  2112. if exists (select * from sysobjects where id = object_id(N'[dnt_createonlineuser]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2113. drop procedure [dnt_createonlineuser]
  2114. GO
  2115. if exists (select * from sysobjects where id = object_id(N'[dnt_deleteonlineusers]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2116. drop procedure [dnt_deleteonlineusers]
  2117. GO
  2118. if exists (select * from sysobjects where id = object_id(N'[dnt_getexpiredonlineuserlist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2119. drop procedure [dnt_getexpiredonlineuserlist]
  2120. GO
  2121. if exists (select * from sysobjects where id = object_id(N'[dnt_updateuseronlinestates]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2122. drop procedure [dnt_updateuseronlinestates]
  2123. GO
  2124. if exists (select * from sysobjects where id = object_id(N'[dnt_updateonlineaction]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2125. drop procedure [dnt_updateonlineaction]
  2126. GO
  2127. CREATE PROCEDURE [dnt_updateonlineaction] 
  2128. @action smallint,
  2129. @lastupdatetime datetime,
  2130. @forumid int,
  2131. @forumname nvarchar(100),
  2132. @titleid int,
  2133. @title nvarchar(160),
  2134. @olid int
  2135. AS
  2136. UPDATE [dnt_online] SET [lastactivity]=[action],[action]=@action,[lastupdatetime]=@lastupdatetime,[forumid]=@forumid,[forumname]=@forumname,[titleid]=@titleid,[title]=@title WHERE [olid]=@olid
  2137. GO
  2138. if exists (select * from sysobjects where id = object_id(N'[dnt_gettopictags]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2139. drop procedure [dnt_gettopictags]
  2140. GO
  2141. CREATE PROCEDURE [dnt_getindexforumlist]
  2142. AS
  2143. SELECT CASE WHEN DATEDIFF(n, [lastpost], GETDATE())<600 THEN 'new' ELSE 'old' END AS [havenew],[dnt_forums].*, [dnt_forumfields].* FROM [dnt_forums] LEFT JOIN [dnt_forumfields] ON [dnt_forums].[fid]=[dnt_forumfields].[fid] WHERE [dnt_forums].[parentid] NOT IN (SELECT [fid] FROM [dnt_forums] WHERE [status] < 1 AND [layer] = 0) AND [dnt_forums].[status] > 0 AND [layer] <= 1 ORDER BY [displayorder]
  2144. GO
  2145. IF OBJECT_ID('[dnt_getonlineuser]','P') IS NOT NULL
  2146. DROP PROC [dnt_getonlineuser]
  2147. GO
  2148. CREATE PROCEDURE [dnt_getonlineuser]
  2149. @userid int,
  2150. @password char(32)
  2151. AS
  2152. SELECT TOP 1 [olid]
  2153.       ,[userid]
  2154.       ,[ip]
  2155.       ,[username]
  2156.       ,[nickname]
  2157.       ,[password]
  2158.       ,[groupid]
  2159.       ,[olimg]
  2160.       ,[adminid]
  2161.       ,[invisible]
  2162.       ,[action]
  2163.       ,[lastactivity]
  2164.       ,[lastposttime]
  2165.       ,[lastpostpmtime]
  2166.       ,[lastsearchtime]
  2167.       ,[lastupdatetime]
  2168.       ,[forumid]
  2169.       ,[forumname]
  2170.       ,[titleid]
  2171.       ,[title]
  2172.       ,[verifycode]
  2173.       ,[newpms]
  2174.       ,[newnotices] FROM [dnt_online] WHERE [userid]=@userid AND [password]=@password
  2175. GO
  2176. IF OBJECT_ID('[dnt_getonlineuserlist]','P') IS NOT NULL
  2177. DROP PROC [dnt_getonlineuserlist]
  2178. GO
  2179. CREATE PROCEDURE [dnt_getonlineuserlist]
  2180. AS
  2181. SELECT [olid]
  2182.       ,[userid]
  2183.       ,[ip]
  2184.       ,[username]
  2185.       ,[nickname]
  2186.       ,[password]
  2187.       ,[groupid]
  2188.       ,[olimg]
  2189.       ,[adminid]
  2190.       ,[invisible]
  2191.       ,[action]
  2192.       ,[lastactivity]
  2193.       ,[lastposttime]
  2194.       ,[lastpostpmtime]
  2195.       ,[lastsearchtime]
  2196.       ,[lastupdatetime]
  2197.       ,[forumid]
  2198.       ,[forumname]
  2199.       ,[titleid]
  2200.       ,[title]
  2201.       ,[verifycode]
  2202.       ,[newpms]
  2203.       ,[newnotices] FROM [dnt_online]
  2204. GO
  2205. IF OBJECT_ID('[dnt_getonlineuserlistbyfid]','P') IS NOT NULL
  2206. DROP PROC [dnt_getonlineuserlistbyfid]
  2207. GO
  2208. CREATE PROCEDURE [dnt_getonlineuserlistbyfid]
  2209. @fid int
  2210. AS
  2211. SELECT [olid]
  2212.       ,[userid]
  2213.       ,[ip]
  2214.       ,[username]
  2215.       ,[nickname]
  2216.       ,[password]
  2217.       ,[groupid]
  2218.       ,[olimg]
  2219.       ,[adminid]
  2220.       ,[invisible]
  2221.       ,[action]
  2222.       ,[lastactivity]
  2223.       ,[lastposttime]
  2224.       ,[lastpostpmtime]
  2225.       ,[lastsearchtime]
  2226.       ,[lastupdatetime]
  2227.       ,[forumid]
  2228.       ,[forumname]
  2229.       ,[titleid]
  2230.       ,[title]
  2231.       ,[verifycode]
  2232.       ,[newpms]
  2233.       ,[newnotices] FROM [dnt_online] WHERE [forumid]=@fid
  2234. GO
  2235. IF OBJECT_ID('[dnt_getrelatedtopics]','P') IS NOT NULL
  2236. DROP PROC [dnt_getrelatedtopics]
  2237. GO
  2238. CREATE PROCEDURE [dnt_getrelatedtopics]
  2239. @count int,
  2240. @tid int
  2241. AS
  2242. EXEC('SELECT TOP ' + @count + ' [linktid],[linktitle],[tid] FROM [dnt_topictagcaches] WHERE [tid]=' + @tid + ' ORDER BY [linktid] DESC')
  2243. GO
  2244. IF OBJECT_ID('[dnt_gettopicinfo]','P') IS NOT NULL
  2245. DROP PROC [dnt_gettopicinfo]
  2246. GO
  2247. CREATE PROCEDURE [dnt_gettopicinfo]
  2248. @tid int,
  2249. @fid int,
  2250. @mode int
  2251. AS
  2252. IF @mode = 1
  2253. BEGIN
  2254.        SELECT TOP 1 [tid]
  2255.       ,[fid]
  2256.       ,[iconid]
  2257.       ,[readperm]
  2258.       ,[price]
  2259.       ,[poster]
  2260.       ,[posterid]
  2261.       ,[title]
  2262.       ,[postdatetime]
  2263.       ,[lastpost]
  2264.       ,[lastpostid]
  2265.       ,[lastposter]
  2266.       ,[lastposterid]
  2267.       ,[views]
  2268.       ,[replies]
  2269.       ,[displayorder]
  2270.       ,[highlight]
  2271.       ,[digest]
  2272.       ,[hide]
  2273.       ,[attachment]
  2274.       ,[moderated]
  2275.       ,[closed]
  2276.       ,[magic]
  2277.       ,[identify]
  2278.       ,[special]
  2279.       ,[typeid]
  2280.       ,[rate]
  2281.       ,[attention] FROM [dnt_topics] WHERE [fid]=@fid AND [tid]<@tid AND [displayorder]>=0 ORDER BY [tid] DESC
  2282. END
  2283. ELSE IF @mode = 2
  2284. BEGIN
  2285.        SELECT TOP 1 [tid]
  2286.       ,[fid]
  2287.       ,[iconid]
  2288.       ,[readperm]
  2289.       ,[price]
  2290.       ,[poster]
  2291.       ,[posterid]
  2292.       ,[title]
  2293.       ,[postdatetime]
  2294.       ,[lastpost]
  2295.       ,[lastpostid]
  2296.       ,[lastposter]
  2297.       ,[lastposterid]
  2298.       ,[views]
  2299.       ,[replies]
  2300.       ,[displayorder]
  2301.       ,[highlight]
  2302.       ,[digest]
  2303.       ,[hide]
  2304.       ,[attachment]
  2305.       ,[moderated]
  2306.       ,[closed]
  2307.       ,[magic]
  2308.       ,[identify]
  2309.       ,[special]
  2310.       ,[typeid]
  2311.       ,[rate]
  2312.       ,[attention] FROM [dnt_topics] WHERE [fid]=@fid AND [tid]>@tid AND [displayorder]>=0 ORDER BY [tid] ASC
  2313. END
  2314. ELSE
  2315. BEGIN
  2316.        SELECT TOP 1 [tid]
  2317.       ,[fid]
  2318.       ,[iconid]
  2319.       ,[readperm]
  2320.       ,[price]
  2321.       ,[poster]
  2322.       ,[posterid]
  2323.       ,[title]
  2324.       ,[postdatetime]
  2325.       ,[lastpost]
  2326.       ,[lastpostid]
  2327.       ,[lastposter]
  2328.       ,[lastposterid]
  2329.       ,[views]
  2330.       ,[replies]
  2331.       ,[displayorder]
  2332.       ,[highlight]
  2333.       ,[digest]
  2334.       ,[hide]
  2335.       ,[attachment]
  2336.       ,[moderated]
  2337.       ,[closed]
  2338.       ,[magic]
  2339.       ,[identify]
  2340.       ,[special]
  2341.       ,[typeid]
  2342.       ,[rate]
  2343.       ,[attention] FROM [dnt_topics] WHERE [tid]=@tid
  2344. END
  2345. GO
  2346. IF OBJECT_ID('[dnt_gettopictags]','P') IS NOT NULL
  2347. DROP PROC [dnt_gettopictags]
  2348. GO
  2349. CREATE PROCEDURE [dnt_gettopictags]
  2350. @topicid int
  2351. AS
  2352. SELECT t.* FROM [dnt_tags] t, [dnt_topictags] tt WHERE tt.[tagid] = t.[tagid] AND tt.[tid] = @topicid ORDER BY [orderid]
  2353. GO
  2354. IF OBJECT_ID('[dnt_createonlineuser]','P') IS NOT NULL
  2355. DROP PROC [dnt_createonlineuser]
  2356. GO
  2357. CREATE PROCEDURE [dnt_createonlineuser] 
  2358. @onlinestate int,
  2359. @userid int,
  2360. @ip varchar(15),
  2361. @username nvarchar(40),
  2362. @nickname nvarchar(40),
  2363. @password char(32),
  2364. @groupid smallint,
  2365. @olimg varchar(80),
  2366. @adminid smallint,
  2367. @invisible smallint,
  2368. @action smallint,
  2369. @lastactivity smallint,
  2370. @lastposttime datetime,
  2371. @lastpostpmtime datetime,
  2372. @lastsearchtime datetime,
  2373. @lastupdatetime datetime,
  2374. @forumid int,
  2375. @forumname nvarchar(50),
  2376. @titleid int,
  2377. @title nvarchar(80),
  2378. @verifycode varchar(10),
  2379. @newpms smallint,
  2380. @newnotices smallint
  2381. AS
  2382. IF @onlinestate = 0
  2383. BEGIN
  2384. UPDATE [dnt_users] SET [onlinestate]=1 WHERE [uid]=@userid
  2385. END
  2386. INSERT INTO [dnt_online] ([userid],[ip],[username],[nickname],[password],[groupid],[olimg],[adminid],[invisible],[action],[lastactivity],[lastposttime],[lastpostpmtime],[lastsearchtime],[lastupdatetime],[forumid],[forumname],[titleid],[title],[verifycode],[newpms],[newnotices])VALUES(@userid,@ip,@username,@nickname,@password,@groupid,@olimg,@adminid,@invisible,@action,@lastactivity,@lastposttime,@lastpostpmtime,@lastsearchtime,@lastupdatetime,@forumid,@forumname,@titleid,@title,@verifycode,@newpms,@newnotices);SELECT SCOPE_IDENTITY()
  2387. GO
  2388. IF OBJECT_ID('[dnt_deleteonlineusers]','P') IS NOT NULL
  2389. DROP PROC [dnt_deleteonlineusers]
  2390. GO
  2391. CREATE PROCEDURE [dnt_deleteonlineusers] 
  2392. @olidlist varchar(5000) = ''
  2393. AS
  2394. DELETE FROM [dnt_online] WHERE CHARINDEX(','+RTRIM([olid])+',', ','+@olidlist+',') > 0
  2395. GO
  2396. IF OBJECT_ID('[dnt_getexpiredonlineuserlist]','P') IS NOT NULL
  2397. DROP PROC [dnt_getexpiredonlineuserlist]
  2398. GO
  2399. CREATE PROCEDURE [dnt_getexpiredonlineuserlist]
  2400. @expires datetime
  2401. AS
  2402. SELECT [olid], [userid] FROM [dnt_online] WHERE [lastupdatetime]<@expires
  2403. GO
  2404. IF OBJECT_ID('[dnt_updateuseronlinestates]','P') IS NOT NULL
  2405. DROP PROC [dnt_updateuseronlinestates]
  2406. GO
  2407. CREATE PROCEDURE [dnt_updateuseronlinestates] 
  2408. @uidlist varchar(5000) = '' 
  2409. AS
  2410. UPDATE [dnt_users] SET [onlinestate]=0,[lastactivity]=GETDATE() WHERE CHARINDEX(','+RTRIM([uid])+',', ','+@uidlist+',') > 0
  2411. GO
  2412. if exists (select * from sysobjects where id = object_id(N'[dnt_getonlineuserbyip]') and OBJECTPROPERTY(id,N'IsProcedure') = 1)
  2413. drop procedure [dnt_getonlineuserbyip]
  2414. GO
  2415. CREATE PROCEDURE [dnt_getonlineuserbyip]
  2416. @userid int,
  2417. @ip varchar(15)
  2418. AS
  2419. SELECT TOP 1 [olid]
  2420.       ,[userid]
  2421.       ,[ip]
  2422.       ,[username]
  2423.       ,[nickname]
  2424.       ,[password]
  2425.       ,[groupid]
  2426.       ,[olimg]
  2427.       ,[adminid]
  2428.       ,[invisible]
  2429.       ,[action]
  2430.       ,[lastactivity]
  2431.       ,[lastposttime]
  2432.       ,[lastpostpmtime]
  2433.       ,[lastsearchtime]
  2434.       ,[lastupdatetime]
  2435.       ,[forumid]
  2436.       ,[forumname]
  2437.       ,[titleid]
  2438.       ,[title]
  2439.       ,[verifycode]
  2440.       ,[newpms]
  2441.       ,[newnotices] FROM [dnt_online] WHERE [userid]=@userid AND [ip]=@ip
  2442. GO
  2443. if exists (select * from sysobjects where id = object_id(N'[dnt_getreplypid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2444. drop procedure [dnt_getreplypid]
  2445. GO
  2446. if exists (select * from sysobjects where id = object_id(N'[dnt_gettodayuploadedfilesize]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2447. drop procedure [dnt_gettodayuploadedfilesize]
  2448. GO
  2449. if exists (select * from sysobjects where id = object_id(N'[dnt_getuseridbyemail]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2450. drop procedure [dnt_getuseridbyemail]
  2451. GO
  2452. if exists (select * from sysobjects where id = object_id(N'[dnt_getuserinfobyip]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2453. drop procedure [dnt_getuserinfobyip]
  2454. GO
  2455. IF OBJECT_ID('[dnt_getreplypid1]','P') IS NOT NULL
  2456. DROP PROC [dnt_getreplypid1]
  2457. GO
  2458. CREATE PROCEDURE [dnt_getreplypid1]
  2459. @uid int,
  2460. @tid int
  2461. AS
  2462. SELECT TOP 1 [pid] FROM [dnt_posts1] WHERE [tid] =@tid AND [posterid]=@uid
  2463. GO
  2464. IF OBJECT_ID('dnt_gettodayuploadedfilesize','P') IS NOT NULL
  2465. DROP PROC dnt_gettodayuploadedfilesize
  2466. GO
  2467. CREATE PROCEDURE dnt_gettodayuploadedfilesize 
  2468. @uid int
  2469. AS
  2470. SELECT SUM([filesize]) AS [todaysize] FROM [dnt_attachments] WHERE [uid]=@uid AND DATEDIFF(d,[postdatetime],GETDATE())=0
  2471. GO
  2472. IF OBJECT_ID('dnt_getuseridbyemail','P') IS NOT NULL
  2473. DROP PROC dnt_getuseridbyemail
  2474. GO
  2475. CREATE PROCEDURE dnt_getuseridbyemail
  2476. @email char(50)
  2477. AS
  2478. SELECT TOP 1 [uid] FROM [dnt_users] WHERE [email]=@email
  2479. GO
  2480. IF OBJECT_ID('[dnt_getuserinfobyip]','P') IS NOT NULL
  2481. DROP PROC [dnt_getuserinfobyip]
  2482. GO
  2483. CREATE PROCEDURE [dnt_getuserinfobyip]
  2484. @regip char(15)
  2485. AS
  2486. SELECT TOP 1 [u].[uid], [u].[username], [u].[nickname], [u].[password], [u].[secques], [u].[spaceid], [u].[gender], [u].[adminid], [u].[groupid], [u].[groupexpiry], [u].[extgroupids], [u].[regip], [u].[joindate], [u].[lastip], [u].[lastvisit], [u].[lastactivity], [u].[lastpost], [u].[lastpostid], [u].[lastposttitle], [u].[posts], [u].[digestposts], [u].[oltime], [u].[pageviews], [u].[credits], [u].[extcredits1], [u].[extcredits2], [u].[extcredits3], [u].[extcredits4], [u].[extcredits5], [u].[extcredits6], [u].[extcredits7], [u].[extcredits8], [u].[avatarshowid], [u].[email], [u].[bday], [u].[sigstatus], [u].[tpp], [u].[ppp], [u].[templateid], [u].[pmsound], [u].[showemail], [u].[invisible], [u].[newpm], [u].[newpmcount], [u].[accessmasks], [u].[onlinestate], [u].[newsletter],[u].[salt], [uf].[website], [uf].[icq], [uf].[qq], [uf].[yahoo], [uf].[msn], [uf].[skype], [uf].[location], [uf].[customstatus], [uf].[avatar], [uf].[avatarwidth], [uf].[avatarheight], [uf].[medals], [uf].[bio], [uf].[signature], [uf].[sightml], [uf].[authstr], [uf].[authtime], [uf].[authflag], [uf].[realname], [uf].[idcard], [uf].[mobile], [uf].[phone], [uf].[ignorepm] FROM [dnt_users] [u] LEFT JOIN [dnt_userfields] [uf] ON [u].[uid]=[uf].[uid] WHERE [u].[regip]=@regip ORDER BY [u].[uid] DESC
  2487. GO
  2488. if exists (select * from sysobjects where id = object_id(N'[dnt_getnoticebyuid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2489. drop procedure [dnt_getnoticebyuid]
  2490. GO
  2491. CREATE PROCEDURE [dnt_getnoticebyuid]
  2492. @uid int,
  2493. @type int
  2494. AS
  2495. IF @type = 0
  2496.      SELECT nid, uid, type, new, posterid, poster, note, postdatetime FROM [dnt_notices] WHERE [uid] = @uid  ORDER BY [postdatetime] DESC
  2497. ELSE
  2498.     SELECT nid, uid, type, new, posterid, poster, note, postdatetime  FROM [dnt_notices] WHERE [uid] = @uid AND [type] = @type ORDER BY [postdatetime] DESC
  2499. GO
  2500. if exists (select * from sysobjects where id = object_id(N'[dnt_createnotice]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2501. drop procedure [dnt_createnotice]
  2502. GO
  2503. CREATE PROCEDURE [dnt_createnotice]
  2504. @uid int,
  2505. @type int,
  2506. @new  int,
  2507. @posterid int,
  2508. @poster nchar(20),
  2509. @note ntext,
  2510. @postdatetime datetime
  2511. AS
  2512. INSERT INTO [dnt_notices] ([uid], [type], [new], [posterid], [poster], [note], [postdatetime]) VALUES (@uid, @type, @new, @posterid, @poster, @note, @postdatetime);
  2513. SELECT SCOPE_IDENTITY()  AS 'nid'
  2514. GO
  2515. if exists (select * from sysobjects where id = object_id(N'[dnt_getnewnoticecountbyuid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2516. drop procedure [dnt_getnewnoticecountbyuid]
  2517. GO
  2518. CREATE PROCEDURE [dnt_getnewnoticecountbyuid]
  2519. @uid int
  2520. AS
  2521. SELECT COUNT(nid) FROM [dnt_notices] WHERE [uid] =  @uid  AND [new] = 1
  2522. GO
  2523. if exists (select * from sysobjects where id = object_id(N'[dnt_getnoticecountbyuid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2524. drop procedure [dnt_getnoticecountbyuid]
  2525. GO
  2526. CREATE PROCEDURE [dnt_getnoticecountbyuid]
  2527. @uid int,
  2528. @type int
  2529. AS
  2530. IF @type = -1
  2531.    SELECT COUNT(nid) FROM [dnt_notices] WHERE [uid] = @uid
  2532. ELSE
  2533.     SELECT COUNT(nid) FROM [dnt_notices] WHERE [uid] = @uid AND [type]=@type
  2534. GO
  2535. if exists (select * from sysobjects where id = object_id(N'[dnt_getpostlist1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  2536. drop procedure [dnt_getpostlist1]
  2537. GO
  2538. CREATE PROCEDURE [dnt_getpostlist1]
  2539. @tid int,
  2540. @pagesize int,
  2541. @pageindex int
  2542. AS
  2543. DECLARE @pagetop int
  2544. SET @pagetop = (@pageindex-1)*@pagesize