1

6つのselectステートメントの結果を返すストアドプロシージャがあります。1つのレコードセットを使用してspを実行し、各selectステートメントのレコードを取得しようとしていますが、それらを読み取ると0または空のレコードを取得します。

ストアドプロシージャから複数のselectステートメントを使用してレコードセットをクエリするにはどうすればよいですか?

元:

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
4

1 に答える 1

3

rs.NextRecordset()は、ストアドプロシージャまたは他のコマンドから返される次のレコードセットに到達するための正しい方法であるため、切り取られたコードは機能するはずです。

何がうまくいかないのですか?

余談ですが、これは明らかなSQLインジェクションの脆弱性であるため、strSql変数が投稿した方法で作成されていないことを願っています( )。strSql = "Exec [dbo].[xyz] '"&param1&"', '"&param2&"', '"&param3& "'"

于 2010-02-22T19:19:08.617 に答える