下面是我写的一个对数据库进行检索的代码
当程序运行检索到4000条数据的时候
在pRecord->MoveNext();时就会出现错误,
release的程序就会自动退出,而且没有任何的提示
请问是我的ADO检索写的不对吗?
还是其他的原因
是否是ADO在进行相关检索的时候不能支持大数据量?
在pRecord->MoveNext()抛出异常的时候
这里的接收异常的程序还收不到这个异常
catch (_com_error e) 
{
TCHAR error[256];
wsprintf(error,_T("%s"),e.ErrorMessage());
DebugMessageBox(error);
CloseHandle(hFile);
}代码部分:try
{
_variant_t RecordsAffected;
_RecordsetPtr pRecord = NULL;
pRecord = g_Connection->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText); if (!pRecord->BOF)
{
pRecord->MoveFirst();
}
else
{
if(pRecord != NULL)
{
if(pRecord->State)
{
pRecord->Close();
}
pRecord = NULL;
}
CloseHandle(hFile);
return false;
} int iiii = 0;
while(!pRecord->adoEOF)
{
iiii++;
if (iiii == 3695+5)
{
int ddda = 3;
ddda++;
}
CString strInsertField;
CString strInsertValue; for (int i = 0; i < m_TableProp.m_vecField.size(); ++i)
{
CString str = m_TableProp.m_vecField[i].m_strField;
CString strRead = GetDBValueByFieldName(str,pRecord); USES_CONVERSION;
string strLog = W2A(strRead);
WriteFile(hFile,strLog.c_str(),strLog.size(),&dwWrite,NULL);
if (i != m_TableProp.m_vecField.size()-1)
{
string sss = "\t";
WriteFile(hFile,sss.c_str(),sss.size(),&dwWrite,NULL);
}
else
{
string sss = "\r\n";
WriteFile(hFile,sss.c_str(),sss.size(),&dwWrite,NULL);
}
} pRecord->MoveNext();
}
}
catch (_com_error e) 
{
TCHAR error[256];
wsprintf(error,_T("%s"),e.ErrorMessage());
DebugMessageBox(error);
CloseHandle(hFile);
}