В проекте, в котором я работаю, у нас есть компонент, который позволяет нам взаимодействовать с базой данных продуктов.
У него есть функция для запуска запроса непосредственно к базе данных.
Использует код ниже
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
Задача ещё не решена.
Других решений пока нет …