MFC ADO写access数据库,代码报错

MFC ADO写access数据库,代码出错
MFC ADO写access数据库,代码出错
向数据库里连续写10条记录,第一条能成功写入,但第二条记录执行TempRecordset->Update();时出错,麻烦大家帮忙找找问题出在哪?
void Sensors::SensorsFileToDatabase(void)
{
_RecordsetPtr TempRecordset;
TempRecordset.CreateInstance(__uuidof(Recordset));
TempRecordset->CursorLocation=adUseClient;
_variant_t abcd="SELECT * FROM sensors";
try
{
TempRecordset->Open(abcd, // 查询position表中所有字段
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
for(int i=0;i<TotalSensors;i++)
{
if(!TempRecordset->adoEOF) TempRecordset->MoveLast();
TempRecordset->AddNew();
TempRecordset->PutCollect("ID",sonsors[i].SensorID);
TempRecordset->PutCollect("type",sonsors[i].SensorType);
TempRecordset->PutCollect("prop",sonsors[i].SensorProp);
TempRecordset->PutCollect("unit",sonsors[i].SenSorUnit);
TempRecordset->PutCollect("VoiceFileName",sonsors[i].SensorVoiceFileName);
TempRecordset->PutCollect("DisplayNameStr",sonsors[i].SensorDisNameStr);
TempRecordset->PutCollect("CheckTime",sonsors[i].SensorCheckTime);
TempRecordset->PutCollect("AlarmEnable",sonsors[i].SensorAlarmEnable);
TempRecordset->PutCollect("OverResult",sonsors[i].SensorOverValue);
TempRecordset->PutCollect("LowerResult",sonsors[i].SensorLowerValue);
TempRecordset->PutCollect("OverAction",sonsors[i].SensorOverAction);
TempRecordset->PutCollect("LowerAction",sonsors[i].SensorLowerAction);
TempRecordset->PutCollect("hBJVoiceID",sonsors[i].hBJVoiceID);
TempRecordset->PutCollect("lBJVoiceID",sonsors[i].lBJVoiceID);
TempRecordset->PutCollect("SensorTemp",sonsors[i].SensorTemp);
TempRecordset->Update();   //第一条记录能成功更新到数据库,但第二条记录执行到这时出错。
}
TempRecordset->Close();
}
------解决方案--------------------
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}

捕获UPDATE 的异常,看看是什么原因~
------解决方案--------------------
单步调试看哪个指针出错了