在查询记录时,出现了在第二次用 recordset.open 打开时出错.
经过分析发现 recordset 有可能未正常关闭.(以前在vb 中好像没有)
处理过程大至:recordeset.open -> recordset.close -> sleep
部分代码如下:
OpenRecordset();
char* pStatement="SELECT * FROM device_tbl";
QueryRecordset(pStatement);
//获取查询数据
_variant_t var;
CString strId;
try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
AfxMessageBox(L"表内数据为空");
return;
}
// 读入库中各字段并加入列表框中
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("id");
if(var.vt != VT_NULL)
strImei = (LPCSTR)_bstr_t(var);
strArray.Add(strId);
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
CloseRecordset();
Sleep(0);