ASP调用SQLServer存储过程,记录数为-1的解决方法

在ASP中调用SQLServer存储过程返回记录集合时,RecordSet的RecordCount显示为-1。文章提供了一种解决此问题的思路,即通过循环遍历记录集来获取实际的记录数,但这种方法可能影响性能。是否采用取决于具体需求。

如果在ASP中调用SQLServer中一个可以返回记录集合的存储过程,那么ASP中处理该集合的对象(Server.CreateObject("ADODB.RecordSet"))属性RecordCount会是-1。虽然该值与预期不符,但记录集合还是被返回到该对象中。

如果需要使用RecordCount,则可以使用一个笨办法解决:

set rs = Server.CreateObject( "ADODB.connection")
set rc = Server.CreateObject("ADODB.recordSet")

rc.open xxx
rs.open 
"exec sp_query", rc, 11

recordcount 
= 0
if rs.eof and rs.bof then
   recordcount 
= 0
else
   rs.movefirst
   
while rs.eof
     recordcount 
= recordcount + 1
      rs.movenext
   
loop
end if

rs.close
rc.close

set rs=nothing
set rc=nothing

(代码未经验证,请只参考其中思路)

这种方法有利有弊,具体是否采用还需要您的仔细考虑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值