Vbscript 读取多个记录集
我有一个存储过程,它返回6个select语句结果。 我试图使用一个记录集来执行sp并获取每个select语句的记录 但当我读取记录时,会得到0或空记录 如何使用查询记录集 来自的多个select语句 存储过程 例:Vbscript 读取多个记录集,vbscript,asp-classic,adodb,Vbscript,Asp Classic,Adodb,我有一个存储过程,它返回6个select语句结果。 我试图使用一个记录集来执行sp并获取每个select语句的记录 但当我读取记录时,会得到0或空记录 如何使用查询记录集 来自的多个select语句 存储过程 例: Set rs=Server.CreateObject(“ADODB.Recordset”) strSql=“Exec[dbo].[xyz]”¶m1&“,”¶m2&“,”¶m3&“” rs.open strSql,CN,3,3 做而不做 如果rs.recordc
Set rs=Server.CreateObject(“ADODB.Recordset”)
strSql=“Exec[dbo].[xyz]”¶m1&“,”¶m2&“,”¶m3&“”
rs.open strSql,CN,3,3
做而不做
如果rs.recordcount>0,则
r1=rs.GetString(,“,”,“
”)
其他的
r1=0
如果结束
下一个
环
Set rs=rs.NextRecordset()
做而不做
如果rs.recordcount>0,则
r2=rs.GetString(,“,”,“
”)
其他的
r2=0
如果结束
下一个
环
是获取从存储过程或其他命令返回的下一个记录集的正确方法,因此被截断的代码应该可以工作
什么不适合你
顺便说一句,我希望strSql变量不是按照您发布的方式构造的(
strSql=“Exec[dbo].[xyz]”和param1&“,”¶m2&“,”¶m3&“,”
),因为这是一个明显的漏洞。我将其更改为命令对象和参数。但是当我执行时,我得到了0个记录计数。你确定返回的记录集不是空的吗?是的,我使用response.write(rs.recordcount)进行了检查,我得到了-1这并不意味着记录集中有内容。当ADO无法确定记录数或提供程序或游标类型不支持RecordCount.ok时,rs.RecordCount将返回-1,但如果要执行此操作,r1=rs.GetString(,“,”,“,””),应如何检查是否存在记录?
Set rs = Server.CreateObject("ADODB.Recordset")
strSql = "Exec [dbo].[xyz] '"¶m1&"', '"¶m2&"', '"¶m3& "'"
rs.open strSql,CN,3,3
Do While Not rs.EOF
if rs.recordcount > 0 then
r1 = rs.GetString(, , ", ", "<BR>" )
else
r1 = 0
end if
rs.MoveNext
Loop
Set rs = rs.NextRecordset()
Do While Not rs.EOF
if rs.recordcount > 0 then
r2 = rs.GetString(, , ", ", "<BR>" )
else
r2 = 0
end if
rs.MoveNext
Loop