急着交差!
下面把代码贴出来,大家可帮忙看看,是代码问题,还是access的问题!帮帮忙啊!!!!/********************************写access核心代码******************************/
SAFEARRAYBOUND rgsabound[1];
VARIANT varBLOB;
SAFEARRAY *psa;
BYTE *pByteTemp=pFileBuffer;
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = fileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)fileLen; i++)
SafeArrayPutElement (psa, &i, pByteTemp++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
pRs->m_pRecordset->GetFields()->GetItem("Data")->AppendChunk(varBLOB);//写入 /********************************读access核心代码******************************/
long lDataSize=pRs->m_pRecordset->GetFields()->GetItem("Data")->ActualSize;
if (lDataSize>0)
{ _variant_t varBLOB;
varBLOB = pRs->m_pRecordset->GetFields()->GetItem("Data")->GetChunk(lDataSize);//读出
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
if(pFileBuffer = new BYTE[lDataSize+1])
{
BYTE *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
memcpy(pFileBuffer,pBuf,lDataSize); //复制到pFileBuffer
SafeArrayUnaccessData (varBLOB.parray);
}
}
}