ADO Recordset-> EndOfFile me da _com_error cuando Empty Recordset

Estoy usando ADO y obtengo un error com muy extraño.

Así que simplemente estoy ejecutando un proceso almacenado usando ADO CommandPtr y almacenándolo en un Recordset.

Esto es lo que estoy haciendo:

_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();
}

Por lo tanto, se supone que mi procedimiento almacenado devuelve un conjunto de registros vacío (0 filas).

Pero luego, cuando verifico si el conjunto de registros ha llegado al final (que simplemente debería devolver verdadero si está vacío). Me sale un error com.

Cuando capté el error de comunicación y lo imprimí, obtuve esto.

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

Lo que no me dice mucho.

No entiendo porqueRecPtr->EndofFile está arrojando un error com, ya que simplemente debería devolver verdadero / falso.

Dudo mucho que el error se deba a que estoy haciendo algo mal al inicializar los objetos Connection y Command. (Si es así, habría obtenido el error al ejecutar el comando).

¿Alguna idea sobre lo que podría estar causando esta excepción?

Respuestas a la pregunta(0)

Su respuesta a la pregunta