15,979
社区成员
发帖
与我相关
我的任务
分享
char *m_pBMPBuffer=NULL;
DWORD m_nFileLen;
CFile file;
if( !file.Open( "f:\\111.rar", CFile::modeRead) ) //Open的时候文件大就比较慢是否也要考虑进度显示,不知道怎么获取时间长短
return;
m_nFileLen = file.GetLength();
m_pBMPBuffer = new char[m_nFileLen + 1];
if(!m_pBMPBuffer)
return;
if(file.ReadHuge(m_pBMPBuffer,m_nFileLen) != m_nFileLen)//读取时文件大也需要响应时间,不知道怎么获取时间长短
return;
if(m_pBMPBuffer == NULL)
{
AfxMessageBox("Error");
return;
}
pRst->Open("SELECT * FROM userphoto",_variant_t((IDispatch *)m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
char *pBuf = m_pBMPBuffer;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
pRst->AddNew();
pRst->PutCollect("username",_variant_t("11111"));
pRst->PutCollect("old",atol("24"));
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRst->GetFields()->GetItem("photo")->AppendChunk(varBLOB);
MessageBox("baocun OK");
}//这部分文件大也需要时间但是试过m_progress.SetRange32(0,nFileLen);在for循环里使用m_progress.SetPos(i);结果增加了显示进度后比实际速度慢N倍
pRst->Update();//Update记录集也需要时间,不知道怎么获取时间长短