回复2页的时候出错

来源:互联网 发布:mac安装matlab闪退 编辑:程序博客网 时间:2024/06/11 10:07

将dnt_getpostlist存储过程有原来的

 

ALTER PROCEDURE [dbo].[dnt_getpostlist]
@tid int,
@pagesize int,
@pageindex int,
@posttablename varchar(20)
AS
DECLARE @pagetop int

SET @pagetop = (@pageindex-1)*@pagesize

IF @pageindex = 1

EXEC('SELECT TOP ' + @pagesize + '
         [' + @posttablename + '].[pid],
         [' + @posttablename + '].[fid],
         [' + @posttablename + '].[title],
         [' + @posttablename + '].[layer],
         [' + @posttablename + '].[message],
         [' + @posttablename + '].[ip],
         [' + @posttablename + '].[lastedit],
         [' + @posttablename + '].[postdatetime],
         [' + @posttablename + '].[attachment],
         [' + @posttablename + '].[poster],
         [' + @posttablename + '].[posterid],
         [' + @posttablename + '].[invisible],
         [' + @posttablename + '].[usesig],
         [' + @posttablename + '].[htmlon],
         [' + @posttablename + '].[smileyoff],
         [' + @posttablename + '].[parseurloff],
         [' + @posttablename + '].[bbcodeoff],
         [' + @posttablename + '].[rate],
         [' + @posttablename + '].[ratetimes],
         [dnt_users].[nickname], 
         [dnt_users].[username],
         [dnt_users].[groupid],
         [dnt_users].[spaceid],
         [dnt_users].[gender],
         [dnt_users].[bday],
         [dnt_users].[email],
         [dnt_users].[showemail],
         [dnt_users].[digestposts],
         [dnt_users].[credits],
         [dnt_users].[extcredits1],
         [dnt_users].[extcredits2],
         [dnt_users].[extcredits3],
         [dnt_users].[extcredits4],
         [dnt_users].[extcredits5],
         [dnt_users].[extcredits6],
         [dnt_users].[extcredits7],
         [dnt_users].[extcredits8],
         [dnt_users].[posts],
         [dnt_users].[joindate],
         [dnt_users].[onlinestate],
         [dnt_users].[lastactivity],
         [dnt_users].[invisible],
         [dnt_userfields].[avatar],
         [dnt_userfields].[avatarwidth],
         [dnt_userfields].[avatarheight],
         [dnt_userfields].[medals],
         [dnt_userfields].[sightml] AS signature,
         [dnt_userfields].[location],
         [dnt_userfields].[customstatus],
         [dnt_userfields].[website],
         [dnt_userfields].[icq],
         [dnt_userfields].[qq],
         [dnt_userfields].[msn],
         [dnt_userfields].[yahoo],
         [dnt_userfields].[skype]
  FROM [' + @posttablename + '] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[' + @posttablename + '].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [' + @posttablename + '].[tid]=' + @tid + ' AND [' + @posttablename + '].[invisible]<=0 ORDER BY [' + @posttablename + '].[pid]')

ELSE

EXEC('SELECT TOP ' + @pagesize + '
         [' + @posttablename + '].[pid],
         [' + @posttablename + '].[fid],
         [' + @posttablename + '].[title],
         [' + @posttablename + '].[layer],
         [' + @posttablename + '].[message],
         [' + @posttablename + '].[ip],
         [' + @posttablename + '].[lastedit],
         [' + @posttablename + '].[postdatetime],
         [' + @posttablename + '].[attachment],
         [' + @posttablename + '].[poster],
         [' + @posttablename + '].[posterid],
         [' + @posttablename + '].[invisible],
         [' + @posttablename + '].[usesig],
         [' + @posttablename + '].[htmlon],
         [' + @posttablename + '].[smileyoff],
         [' + @posttablename + '].[parseurloff],
         [' + @posttablename + '].[bbcodeoff],
         [' + @posttablename + '].[rate],
         [' + @posttablename + '].[ratetimes],
         [dnt_users].[nickname], 
         [dnt_users].[username],
         [dnt_users].[groupid],
         [dnt_users].[spaceid],
         [dnt_users].[gender],
         [dnt_users].[bday],
         [dnt_users].[email],
         [dnt_users].[showemail],
         [dnt_users].[digestposts],
         [dnt_users].[credits],
         [dnt_users].[extcredits1],
         [dnt_users].[extcredits2],
         [dnt_users].[extcredits3],
         [dnt_users].[extcredits4],
         [dnt_users].[extcredits5],
         [dnt_users].[extcredits6],
         [dnt_users].[extcredits7],
         [dnt_users].[extcredits8],
         [dnt_users].[posts],
         [dnt_users].[joindate],
         [dnt_users].[onlinestate],
         [dnt_users].[lastactivity], 
         [dnt_users].[invisible] AS [userinvisible],
         [dnt_userfields].[avatar],
         [dnt_userfields].[avatarwidth],
         [dnt_userfields].[avatarheight],
         [dnt_userfields].[medals],
         [dnt_userfields].[sightml] AS [signature],
         [dnt_userfields].[location],
         [dnt_userfields].[customstatus],
         [dnt_userfields].[website],
         [dnt_userfields].[icq],
         [dnt_userfields].[qq],
         [dnt_userfields].[msn],
         [dnt_userfields].[yahoo],
         [dnt_userfields].[skype]
 FROM [' + @posttablename + '] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[' + @posttablename + '].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [' + @posttablename + '].[tid]=' + @tid + ' AND [pid] > (SELECT MAX([pid]) FROM (SELECT TOP ' + @pagetop + ' [' + @posttablename + '].[pid] FROM [' + @posttablename + '] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[' + @posttablename + '].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [' + @posttablename + '].[tid]=' + @tid + ' AND [' + @posttablename + '].[invisible]<=0) AS tblTmp) AND [' + @posttablename + '].[invisible]<=0 ORDER BY [' + @posttablename + '].[pid]')

 

改为

 

 

ALTER PROCEDURE [dbo].[dnt_getpostlist]
@tid int,
@pagesize int,
@pageindex int,
@posttablename varchar(20)
AS
DECLARE @pagetop int

SET @pagetop = (@pageindex-1)*@pagesize

IF @pageindex = 1

EXEC('SELECT TOP ' + @pagesize + '
[' + @posttablename + '].[pid],
[' + @posttablename + '].[fid],
[' + @posttablename + '].[title],
[' + @posttablename + '].[layer],
[' + @posttablename + '].[message],
[' + @posttablename + '].[ip],
[' + @posttablename + '].[lastedit],
[' + @posttablename + '].[postdatetime],
[' + @posttablename + '].[attachment],
[' + @posttablename + '].[poster],
[' + @posttablename + '].[posterid],
[' + @posttablename + '].[invisible],
[' + @posttablename + '].[usesig],
[' + @posttablename + '].[htmlon],
[' + @posttablename + '].[smileyoff],
[' + @posttablename + '].[parseurloff],
[' + @posttablename + '].[bbcodeoff],
[' + @posttablename + '].[rate],
[' + @posttablename + '].[ratetimes],
[dnt_users].[nickname],
[dnt_users].[username],
[dnt_users].[groupid],
[dnt_users].[spaceid],
[dnt_users].[gender],
[dnt_users].[bday],
[dnt_users].[email],
[dnt_users].[showemail],
[dnt_users].[digestposts],
[dnt_users].[credits],
[dnt_users].[extcredits1],
[dnt_users].[extcredits2],
[dnt_users].[extcredits3],
[dnt_users].[extcredits4],
[dnt_users].[extcredits5],
[dnt_users].[extcredits6],
[dnt_users].[extcredits7],
[dnt_users].[extcredits8],
[dnt_users].[posts],
[dnt_users].[joindate],
[dnt_users].[onlinestate],
[dnt_users].[lastactivity],
[dnt_users].[invisible],
[dnt_userfields].[avatar],
[dnt_userfields].[avatarwidth],
[dnt_userfields].[avatarheight],
[dnt_userfields].[medals],
[dnt_userfields].[sightml] AS signature,
[dnt_userfields].[location],
[dnt_userfields].[customstatus],
[dnt_userfields].[website],
[dnt_userfields].[icq],
[dnt_userfields].[qq],
[dnt_userfields].[msn],
[dnt_userfields].[yahoo],
[dnt_userfields].[skype]
FROM [' + @posttablename + '] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[' + @posttablename + '].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [' + @posttablename + '].[tid]=' + @tid + ' AND [' + @posttablename + '].[invisible]<=0 ORDER BY [' + @posttablename + '].[pid]')

ELSE

EXEC('SELECT TOP ' + @pagesize + '
[' + @posttablename + '].[pid],
[' + @posttablename + '].[fid],
[' + @posttablename + '].[title],
[' + @posttablename + '].[layer],
[' + @posttablename + '].[message],
[' + @posttablename + '].[ip],
[' + @posttablename + '].[lastedit],
[' + @posttablename + '].[postdatetime],
[' + @posttablename + '].[attachment],
[' + @posttablename + '].[poster],
[' + @posttablename + '].[posterid],
[' + @posttablename + '].[invisible],
[' + @posttablename + '].[usesig],
[' + @posttablename + '].[htmlon],
[' + @posttablename + '].[smileyoff],
[' + @posttablename + '].[parseurloff],
[' + @posttablename + '].[bbcodeoff],
[' + @posttablename + '].[rate],
[' + @posttablename + '].[ratetimes],
[dnt_users].[nickname],
[dnt_users].[username],
[dnt_users].[groupid],
[dnt_users].[spaceid],
[dnt_users].[gender],
[dnt_users].[bday],
[dnt_users].[email],
[dnt_users].[showemail],
[dnt_users].[digestposts],
[dnt_users].[credits],
[dnt_users].[extcredits1],
[dnt_users].[extcredits2],
[dnt_users].[extcredits3],
[dnt_users].[extcredits4],
[dnt_users].[extcredits5],
[dnt_users].[extcredits6],
[dnt_users].[extcredits7],
[dnt_users].[extcredits8],
[dnt_users].[posts],
[dnt_users].[joindate],
[dnt_users].[onlinestate],
[dnt_users].[lastactivity],
[dnt_users].[invisible] AS [userinvisible],
[dnt_userfields].[avatar],
[dnt_userfields].[avatarwidth],
[dnt_userfields].[avatarheight],
[dnt_userfields].[medals],
[dnt_userfields].[sightml] AS [signature],
[dnt_userfields].[location],
[dnt_userfields].[customstatus],
[dnt_userfields].[website],
[dnt_userfields].[icq],
[dnt_userfields].[qq],
[dnt_userfields].[msn],
[dnt_userfields].[yahoo],
[dnt_userfields].[skype]
FROM [' + @posttablename + '] LEFT JOIN [dnt_users] ON [dnt_users].[uid]=[' + @posttablename + '].[posterid] LEFT JOIN [dnt_userfields] ON [dnt_userfields].[uid]=[dnt_users].[uid] WHERE [' + @posttablename + '].[tid]=' + @tid + ' AND [pid] > (SELECT MAX([pid]) FROM (SELECT TOP ' + @pagetop + ' [' + @posttablename + '].[pid] FROM [' + @posttablename + '] WHERE [' + @posttablename + '].[tid]=' + @tid + ' AND [' + @posttablename + '].[invisible]<=0 ORDER BY [' + @posttablename + '].[pid]) AS tblTmp) AND [' + @posttablename + '].[invisible]<=0 ORDER BY [' + @posttablename + '].[pid]')

原创粉丝点击