asp的command对象调用存储过程返回来的记录集数量为何是-1??

亚细亚 2015-04-01 03:16:03
asp中的Command对象来调用存储过程,结果返回的记录集的数为-1(second_t 表实际有多个记录),这是怎么回事?
asp代码如下:

<%
Set MyComm = Server.CreateObject("ADODB.Command")
dCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200
adVarWChar = 202
with MyComm
.ActiveConnection = Conn
.CommandText = "power_show_p"
.CommandType = 4
.Prepared = true
set rs=.Execute
end with
response.Write(rs.recordcount)
%>

存储过程如下:
[code=sql]
create procedure power_show_p
as
SET NOCOUNT ON
begin
select * from second_t
end

[/code]
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
亚细亚 2015-04-02
  • 打赏
  • 举报
回复
引用 6 楼 Tiger_Zhao 的回复:
用了服务端游标,只打开不取数的时候记录数就是-1,表示不确定。 A)ADODB.Connection 的 CursorLocation 要初始化为 adUseClient (值3)。 B)求记录数不会用 SELECT COUNT(*) 啊!
哦,原来的CursorLocation 的问题,嗯,问题解决了,结贴;
Tiger_Zhao 2015-04-01
  • 打赏
  • 举报
回复
用了服务端游标,只打开不取数的时候记录数就是-1,表示不确定。
A)ADODB.Connection 的 CursorLocation 要初始化为 adUseClient (值3)。
B)求记录数不会用 SELECT COUNT(*) 啊!
jamesrggg 2015-04-01
  • 打赏
  • 举报
回复
直接在数据库执行,看看返回值多少
亚细亚 2015-04-01
  • 打赏
  • 举报
回复
难道大家都没有遇到这样的情况?
亚细亚 2015-04-01
  • 打赏
  • 举报
回复
引用 2 楼 misterliwei 的回复:
是不是因为存储过程中设置了SET NOCOUNT ON的缘故啊?
设置成SET NOCOUNT OFF返回的值还是-1
misterliwei 2015-04-01
  • 打赏
  • 举报
回复
是不是因为存储过程中设置了SET NOCOUNT ON的缘故啊?
jamesrggg 2015-04-01
  • 打赏
  • 举报
回复
-1应该是执行存储过程失败了吧...

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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