While operation persist Recordset and Stream, must make sure Stream Position located in zero.
_StreamPtr pStreamTest = NULL;
HRESULT hr = pStreamTest.CreateInstance(__uuidof(Stream));
if (FAILED(hr))
{
return;
}
...
pStreamTest->put_Position(0);
_RecordsetPtr spRecordset = NULL;
hr = spRecordset.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
return ;
}
try
{
spRecordset->PutCursorLocation(adUseClientBatch);
spRecordset->Open(pStream.GetInterfacePtr(),
vtMissing,
adOpenStatic,
adLockBatchOptimistic,
-1);
int count = spRecordset->RecordCount;
...