2010-02-22 3 views
1

6 개의 SELECT 문 결과를 반환하는 저장 프로 시저가 있습니다. 여러 레코드 집합 읽기

어떻게 에서 여러 SELECT 문 세트 기록을 조회 할 수 있습니다, 나는 각 SELECT 문 에 대한 기록을 SP를 실행하고 얻기 위해 설정 한 레코드를 사용하기 위해 노력하고있어하지만 난 그들을 읽을 때 나는 0 또는 빈 기록을 얻을 저장 프로 시저?

예 :

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 

답변

3

rs.NextRecordset() 그래서 코드가 작동해야 냈다, 저장 프로 시저 또는 다른 명령에서 반환 된 다음 레코드로 얻을 수있는 올바른 방법이다.

어떤 점이 효과가 있습니까?

덧붙여서 strSql 변수가 게시 된 방식으로 구성되지 않았 으면 (strSql = "Exec [dbo].[xyz] '"&param1&"', '"&param2&"', '"&param3& "'") 이는 분명히 SQL Injection 취약점입니다.

+0

명령 개체 및 매개 변수를 변경했습니다. 하지만 내가 그들을 실행하면 0 레코드 카운트를 얻을 –

+0

반환되는 레코드 세트가 비어 있지 않은 것이 확실합니까? – Oded

+0

예 response.write (rs.recordcount)를 사용하여 확인한 결과가 -1입니다. –