如果在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, 1, 1
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(代码未经验证,请只参考其中思路)
这种方法有利有弊,具体是否采用还需要您的仔细考虑!
在ASP中调用SQLServer存储过程返回记录集合时,RecordSet的RecordCount显示为-1。文章提供了一种解决此问题的思路,即通过循环遍历记录集来获取实际的记录数,但这种方法可能影响性能。是否采用取决于具体需求。

2521

被折叠的 条评论
为什么被折叠?



