Vbscript 读取多个记录集

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

我有一个存储过程,它返回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.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] '"&param1&"', '"&param2&"', '"&param3& "'"   
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