ADO Recordset-> EndOfFile дает мне _com_error, когда пустой набор записей

Я использую ADO, и получаю очень странную ошибку com.

Поэтому я просто запускаю сохраненный процесс с использованием ADO CommandPtr и сохраняю его в наборе записей.

Вот что я делаю:

_ConnectionPtr Connptr;
//Instantiate ConnectionPtr...

_CommapndPtr CommPtr;
CommPtr.CreateInstance(__uuidof(Command));
CommPtr->CommandType = adCmdText;
CommPtr->ActiveConnection = ConnPtr;
CommPtr->CommandText = "Execute MyDb..MyStoredProc";

_RecordsetPtr RecPtr;
RecPtr.CreateInstance(__uuidof(Recordset));
RecPtr->CursorLocation = adUseClient;
RecPtr->CacheSize = 150;

RecPtr = CommPtr->Execute(NULL, NULL, adOptionUnspecified);   //RecPtr = Empty Recordset

while (!RecPtr->EndOfFile) {       //ERROR HAPPENS HERE!!!
    //Do something
    RecPtr->MoveNext();
}

Поэтому моя хранимая процедура должна возвращать пустой набор записей (0 строк).

Но потом, когда я проверяю, достиг ли конец набора записей (который должен просто возвращать true, если он пуст). Я получаю сообщение об ошибке.

Когда я уловил ошибку com и распечатал ее, я получил это.

Code = -2147217849
Meaning = IDispatch error #3153
Source = NULL

Что не говорит мне много.

Я не понимаю почемуRecPtr->EndofFile выбрасывает ошибку com, так как он должен просто возвращать true / false.

Я очень сомневаюсь, что ошибка вызвана тем, что я делаю что-то не так при инициализации объектов Connection и Command. (Если так, то я получил бы ошибку при выполнении команды.)

Любые идеи о том, что может быть причиной этого исключения?

Ответы на вопрос(0)

Ваш ответ на вопрос