初学者,听说Recodset->close()不能多次关闭,可不关闭的话,第二次调用Readdb()就会异常,怎么办?readDB()

 CString strSql="select * from middle";
  BSTR bstrSQL = strSql.AllocSysString(); 
  m_pRecordset->Open(bstrSQL,(IDispatch*)m_pConnection,
                               adOpenDynamic,adLockOptimistic,adCmdText);   while(!m_pRecordset->adoEOF)
  { 
 
   _variant_t TheValue; 
   TheValue = m_pRecordset->GetCollect("BIG_NAME");
   if(TheValue.vt!=VT_NULL)
    m_List.AddString((char*)_bstr_t(TheValue));
 
   m_pRecordset->MoveNext();
  }
  //m_pRecordset->Close(); 如果这里不关闭,再次调用,异常,如果关闭,OnCancell()函数
//应该怎么写,我试了网上的几种办法都不行啊!!
 
 }