下面是我写的一个对数据库进行检索的代码
当程序运行检索到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);
}
当程序运行检索到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);
}
解决方案 »
- 问一个CListCtrl的问题,有点难度
- 想写一个自动填写页面的东西 谁能帮我解决这个问题,给他500分。
- 请问哪里能找到介绍如何编写中国象棋算法的资料
- 关于在VC中dll使用local heap的问题 (需windows高手)
- 如何禁止IE菜单中的File->new菜单子项
- 我想画半圆!!!!!!!!!!!!
- 我的ASP 网站只能访问数据库,但不能改和更新???
- 请问:如何能够在网页中让*.ocx的控件类似于flash播放控件一样,判断有无,如果没有自动下载呢?
- VC++6.0处理复杂的游戏图形图象的基本方法
- 试问哪种C++工具才能合算地开发出好软件
- 创建的TAB控件无法显示
- linux环境下如何把main函数隐藏到动态链接库中?(如MFC的做法?)
for(;!pRecordset->adoEOF;pRecordset->MoveNext())
{
var = pRecordset->GetCollect(_T("field"));
}好像是和你一样的,为什么会出错呢