ADO, хранимые процедуры и закрытый набор записей

В проекте, в котором я работаю, у нас есть компонент, который позволяет нам взаимодействовать с базой данных продуктов.

У него есть функция для запуска запроса непосредственно к базе данных.

Использует код ниже

IDispatch ThatComponent::ProcessQuery(BSTR query)
{

pRecordset.CreateInstance(__uuidof(ADODB::Recordset));
pRecordset->AddRef();

pRecordset->Open(_bstr_t(QUERY), (IDispatch *)m_pConnection, ADODB::adOpenStatic,
ADODB::adLockOptimistic, ADODB::adCmdText);
pRecordset->PutRefActiveConnection(NULL);

return pRecordset;
}

Теперь, используя этот компонент, мне нужно запустить хранимую процедуру и получить ее возвращаемое значение и один выходной параметр.
Для этого я создаю запрос и передаю его функции ProcessQuery () выше.

«ОБЪЯВИТЬ @RC int; объявить @realrecordid int; exec @RC = IncrementRecordCount currentRecordId, @realrecordid OUTPUT; выбрать @RC AS RC, @realrecordid AS ID;»

Хранимая процедура не возвращает никакого набора записей.

Проблема в том, что когда набор записей возвращается, он закрывается. И я не могу сделать любой операции на нем.

Глядя на запрос выше, я представляю, что будет два набора записей. Один для оператора exec и один для оператора select.

Есть ли способ получить второй набор записей из первого закрытого набора записей?

Заранее спасибо,
-Neel

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …