运行成功后,出现runtime error异常

运行成功后,出现runtime error错误
vc6.0操作sql server 2000数据库。那位高手熟悉_RecordsetPtr指针操作,帮小弟看看下面的代码吧,能够实现我要的向TwoConditionSet表中插入数据,但是结束后就出现

  Runtime error!
  this application has requested the runtime to terminate it in an unusual way.
  please contact the application's support team for more information.
 的错误。
是因为结束后没有对指针处理导致的吗??? 求指点!!!

void Createtwice()
{

ADOConn ado;
  int countnumber=0;
int circletime=0;
CString strsql="select * from OneConditionSet where oncehouse=1";
  _bstr_t bstrsql(strsql);

  _variant_t varconditionstr1;
  _variant_t varconditionstr2;
  _variant_t varcondition1;
  _variant_t varcondition2;
  _variant_t varhouse;
  _variant_t varhousespt;



_RecordsetPtr m_pRecordset1=ado.GetRecordSet(bstrsql);
  _RecordsetPtr m_pRecordset2;

  varconditionstr1=m_pRecordset1->GetCollect("oncecondit");
  conditionstr1=(char *)_bstr_t(varconditionstr1);

varcondition1=m_pRecordset1->GetCollect("onceeducat");
  condition1=(char *)_bstr_t(varcondition1);

while(!m_pRecordset1->adoBOF)
{


  for(int j=0;j<circletime;j++)
  m_pRecordset1->MoveNext();
if(circletime==0)
  m_pRecordset1->MoveNext();

if(circletime!=0)
{
  varconditionstr1=m_pRecordset1->GetCollect("oncecondit");
  conditionstr1=(char *)_bstr_t(varconditionstr1);

varcondition1=m_pRecordset1->GetCollect("onceeducat");
condition1=(char *)_bstr_t(varcondition1);
m_pRecordset1->MoveNext();
}

   
  m_pRecordset2=m_pRecordset1;

while(!m_pRecordset2->adoEOF)
{
varconditionstr2=m_pRecordset2->GetCollect("oncecondit");
conditionstr2=(char *)_bstr_t(varconditionstr2);

varcondition2=m_pRecordset2->GetCollect("onceeducat");
condition2=(char *)_bstr_t(varcondition2);

if(conditionstr1!=conditionstr2)
{
countnumber++;
CString string="insert into TwoConditionSet(twiceid,twiceconditstr1,twicecondit1,twiceconditstr2,twicecondit2,";
string+="twicecondit12spt,twicehouse,twicehousespt)values(%d,'%s','%s','%s','%s',%d,%d,%d)";
CString str;
str.Format(string,countnumber,conditionstr1,condition1,conditionstr2,condition2,conditionspt,house,housespt);
_bstr_t bstrsql1(str);
ado.ExecuteSQL(bstrsql1);
}
m_pRecordset2->MoveNext();

}
circletime++;
m_pRecordset1->MoveFirst();
}
 
}

------解决方案--------------------
看不出来,把ADOConn的代码也贴出来看看。
------解决方案--------------------
单步调试,看看到哪句出错。。。
------解决方案--------------------
嗯,m_pConnection.CreateInstance没有对应的 m_pConnection.Release,加上试试。

RecordSet也要如此对应才行。