4,011
社区成员
发帖
与我相关
我的任务
分享
_bstr_t bstrsource = "select * from MYDB_SAVE_FILE";
TESTHR(pRecordset.CreateInstance(__uuidof(ADODB::Recordset)));
pRecordset->Open(bstrsource,m_Conn.GetInterfacePtr(),ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdText);
pRecordset->AddNew();
pRecordset->PutCollect("NAME_ID",CComVariant(1));
VARIANT varBLOB;
// BlobToVariant(varBLOB,szCfgBuff,nFileSize);
//////////////////////////////////////////////////////////////////////////
BYTE *pBufEx;
//build a SAFFERRAY
SAFEARRAY* psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = nFileSize;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
if(SafeArrayAccessData(psa,(void **)&pBufEx) == NOERROR)
memcpy((LPVOID)pBufEx,(LPVOID)szCfgBuff,nFileSize);
SafeArrayUnaccessData(psa);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
//////////////////////////////////////////////////////////////////////////
pRecordset->GetFields()->GetItem("FILE_VALUE")->AppendChunk(varBLOB);
VariantClear(&varBLOB);
pRecordset->Update();
}
catch (_com_error &e)
{
m_bstrErrorMessage = e.Description();
}
_bstr_t bstrsource = "select * from MYDB_SAVE_FILE";
TESTHR(pRecordset.CreateInstance(__uuidof(ADODB::Recordset)));
pRecordset->Open(bstrsource,m_Conn.GetInterfacePtr(),ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdText);
pRecordset->MoveFirst();
while (!pRecordset->EndOfFile)
{
_bstr_t bstrExt = pRecordset->GetCollect("FILE_EXT");
int nDataLength = pRecordset->GetFields()->GetItem("FILE_VALUE")->ActualSize;
if (nDataLength > 0)
{
VARIANT varBLOB;
VariantInit(&varBLOB);
varBLOB = pRecordset->GetFields()->GetItem("FILE_VALUE")->GetChunk(nDataLength);
// If the data retrieved is array of bytes then get data from the array and set the
// data value variable of the edit box
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
BYTE* pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);// 此处pBuf是空白
SafeArrayUnaccessData(varBLOB.parray);
}
}
pRecordset->MoveNext();
}
}
catch (_com_error &e)
{
m_bstrErrorMessage = e.Description();
}