请教一个关于存储过程分页的问题

linnchord 2004-08-27 01:05:57
--列出所有新闻(分页参数 当前页数/每页记录数 返回记录总数)
CREATE PROC [dbo].[ProcListNews]
@page INT,
@pageSize INT
AS
DECLARE @beginId INT, @endId INT, @pageBegin INT, @pageEnd INT, @xtmp INT, @count INT

SELECT @count=(SELECT COUNT(*) countx FROM News )

--声明游标
DECLARE fastRead CURSOR SCROLL FOR SELECT ID FROM News ORDER BY PostTime desc

OPEN fastRead

SELECT @beginId=(@page-1)*@pageSize+1
SELECT @endId = @beginId+@pageSize-1

FETCH ABSOLUTE @beginId FROM fastRead INTO @pageBegin

IF @endId > @count
FETCH LAST FROM fastRead INTO @pageEnd
ELSE
FETCH ABSOLUTE @endId FROM fastRead into @pageEnd

--切换大小 between语句中排在前位的必须是较小数字
IF @pageBegin>@pageEnd
BEGIN
SELECT @xtmp=@pageBegin
SELECT @pageBegin=@pageEnd
SELECT @pageEnd=@xtmp
END

SELECT News.ID,Title,Content,Url,[Name] CategoryName,PostTime
FROM News JOIN NewsCategory c ON CategoryID=c.ID
WHERE News.ID BETWEEN @pageBegin AND @pageEnd ORDER BY PostTime DESC

CLOSE fastRead
DEALLOCATE fastRead

RETURN @count

GO

asp代码是这样的


'获取新闻记录
set cmd = Server.CreateObject("ADODB.Command")

with cmd
.ActiveConnection = ConnString
.CommandType = adCmdStoredProc
.CommandText = "ProcListNews"
.Parameters.Append .CreateParameter ("RETURN_VALUE",adInteger,AdParamReturnValue)
.Parameters.Append .CreateParameter("@page",adInteger,,,page)
.Parameters.Append .CreateParameter("@pageSize",adInteger,,,pagesize)
set rsNews = .Execute
allcount = .Parameters("RETURN_VALUE")
end with

其他的都正常,只是不知道为什么,allcount总是获取不到返回值……
...全文
242 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
linnchord 2004-09-13
  • 打赏
  • 举报
回复
谢谢gwind
gwind 2004-09-11
  • 打赏
  • 举报
回复
如果存储过程返回了列表值,生成了Recordset,那么返回值必须在Recordset关闭以后获得。

set rsNews = .Execute
……
……
rsNews.close

allcount = cmd.Parameters("RETURN_VALUE")
sheng9hhd 2004-09-06
  • 打赏
  • 举报
回复
加@count int OUTPUT
linnchord 2004-09-06
  • 打赏
  • 举报
回复
没有兄弟知道吗?
linnchord 2004-08-27
  • 打赏
  • 举报
回复
SELECT @count=(SELECT COUNT(*) countx FROM News )

怎么会不在呢?
aspgreener 2004-08-27
  • 打赏
  • 举报
回复
因为@count不在select中啊!

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧