2010-02-22 5 views
1

J'ai un proc stocké qui renvoie 6 résultats d'instruction select. Je suis en train d'utiliser un record pour exécuter sp et obtenir des enregistrements pour chaque instruction select mais j'obtenir 0 ou dossiers vides quand je les lis,Lecture de plusieurs jeux d'enregistrements

Comment puis-je interroger record avec instructions select multiples de procédure stockée?

ex:

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 

Répondre

3

rs.NextRecordset() est la bonne façon de se rendre à la prochaine recordset retour d'une procédure stockée ou une autre commande, de sorte que votre code devrait fonctionner ciselée.

Qu'est-ce qui ne fonctionne pas pour vous? En outre, j'espère que la variable strSql n'est pas construite de la façon dont vous avez publié (strSql = "Exec [dbo].[xyz] '"&param1&"', '"&param2&"', '"&param3& "'"), car il s'agit d'une vulnérabilité de SQL Injection.

+0

je l'ai changé pour commander l'objet et les paramètres. Mais je reçois 0 nombre d'enregistrements quand je les exécute –

+0

Êtes-vous certain que les jeux d'enregistrements retournés ne sont pas vides? – Oded

+0

oui j'ai vérifié en utilisant response.write (rs.recordcount) et je reçois -1 –

Questions connexes