执行错误:Unhandled exception
liu_ 2005-04-18 01:26:03 程序如下:
用ADO访问数据库,然后读出其中的图像数据,并写到临时文件中。
while(!m_pRecordset->adoEOF)
{
long lDataSize = m_pRecordset->GetFields()->GetItem("Miniature")->ActualSize;
if(lDataSize > 0)
{
_variant_t varBLOB;
varBLOB = m_pRecordset->GetFields()->GetItem("Miniature")->GetChunk(lDataSize);
if(varBLOB.vt == (VT_ARRAY | VT_UI1))//判断数据类型是否正确
{
char *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
CString strFileName="bb.";
_variant_t vValue;
vValue=m_pRecordset->GetCollect("Filetype");
strFileName += (LPCTSTR)(_bstr_t)vValue;
char tmpPath[_MAX_PATH+1];
GetTempPath(_MAX_PATH,tmpPath);//得到临时文件的目录;
strFileName.Insert(0,tmpPath);//生成临时文件名
CFile outFile(strFileName,CFile::modeCreate|CFile::modeWrite);
//向临时文件写数据,数据库中数据读操作时关键是知道数据的长度
outFile.WriteHuge(pBuf,lDataSize);
outFile.Close();
}
}//**********************
m_pRecordset->MoveNext();
}
在单步运行到//***********标志的括号时,就会显示错误提示:Unhandled exception in adotrans。exe(KERNEL32.dll):0xE06D7363:Microsoft C++ Exception。
应该是内存错误吧,什么地方出的问题,应该怎么改,请给与指点。