2010-02-22 5 views
1

У меня есть хранимая процедура, которая возвращает 6 результатов запроса выбора. Я пытаюсь использовать один рекорд, установленный для выполнения зр и получить записи для каждого оператора выбора , но я получаю 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 –

Смежные вопросы