前台不能返回存储过程的 output 参数,怪怪。

coffeewar 2004-07-23 04:37:44
存储过程是邹键的分页存储过程,其它好像都正常,可是 output参数@pageCount在前台却不能返回,总是产生异常,提示 @pageCount为空。
存储过程如下:
ALTER procedure p_splitpage
--@sql nvarchar(4000), --要执行的sql语句
@depId tinyint,
@cateId tinyint=null,
@currentpage int=1, --要显示的页码
@pagesize int=16, --每页的大小
@pagecount int=0 out --总页数
as
set nocount on
declare @p1 int
declare @sql varchar(4000)
if(@cateId is not null and @cateId!=0)
set @sql='select productId,productName,productStandard,retailPrice,normalPicture
from product where departmentId='+cast(@depId as varchar)+' and categoryId='+cast(@cateId as varchar)
else
set @sql='select productId,productName,productStandard,retailPrice,normalPicture
from product where departmentId='+cast(@depId as varchar)
exec sp_cursoropen @p1 output,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount output

select @pagecount=ceiling(1.0*@pagecount/@pagesize)
,@currentpage=(@currentpage-1)*@pagesize+1
select @currentpage
exec sp_cursorfetch @p1,16,@currentpage,@pagesize
exec sp_cursorclose @p1
...全文
164 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffeewar 2004-07-23
  • 打赏
  • 举报
回复
谢谢!
zjcxc 元老 2004-07-23
  • 打赏
  • 举报
回复
这种问题不是我想及能解决的问题,找微软去.

你可以写个最简单的存储过程测试一下(看我有没有搞错):
create proc p_test
@re int out
as
set @re=100
select @re
go
coffeewar 2004-07-23
  • 打赏
  • 举报
回复
完成一个任务要调用两次存储过程,多浪费资源又麻烦,为什么要有这种限制,真是的。
zjcxc 元老 2004-07-23
  • 打赏
  • 举报
回复
--select @currentpage,去掉这句.

调用的时候,取@pagecount要单独调用一次,不能与取记录集的调用放在一齐.

这是ADO调用上的限制,与存储过程无关.

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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