Re[2]: ADO&VC: Recordset = Command->Execute()????
От: Аноним  
Дата: 26.08.02 07:40
Оценка:
Здравствуйте Максим Алексейкин, Вы писали:

МА>Попробуй результирующему рекордсету установить свойства до вызова Command->Execute


А это не срабатывает даже если использовать raw_Execute(), все равно возвращается _Recordset с курсором adOpenForwardOnly и соответственно, _RecordsetPtr->RecordCount() всегда возвращает -1, а не реальное число записей.
Вот мой код:
// Попытка получить "полноценный" Recordset при использовании хранимой процедуры через Command
// Все проверки ошибок в этом примере вырезаны
...
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection = m_pConnection;
pCommand->CommandType = adCmdStoredProc;
pCommand->CommandText = _bstr_t(ProcName);
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset->CursorLocation = adUseClient;
pRecordset->CursorType = adOpenKeyset; // Сбрасывается!!!
pRecordset->LockType = adLockBatchOptimistic;
struct _Recordset* PtrRecordset = pRecordset.GetInterfacePtr();
pCommand->m_pCommand->raw_Execute(&vtMissing,&vtMissing,adCmdStoredProc,&PtrRecordset);
pRecordset = PtrRecordset;
// Далее проверяем, увы: pRecordset->RecordCount == -1, MovePrevious() не работает
Народ! Наверняка кто-то сталкивался с такой пробемой и как-то ее решал. Подскажите!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.