描述:
客户端:
void CCOMADO::AddDetailedInfo(byte *p_Buf,long * m_nLen)
//m_nLen 文件长度
//p_Buf文件句柄的指针
{
int i_No=0;
char strTest[30];
pDBPtr->AddNew();///添加新记录
long aa=0;
CString str="S_Pic";//S_Pic为字段名
//pDBPtr->PutCollect_8(aa,i_No);
aa++;
AfxMessageBox("2");
sprintf(strTest,"m_nFiledLen is: %d",*m_nLen);
AfxMessageBox(strTest);
pDBPtr->AppendChunk_5(str.AllocSysString(),p_Buf,m_nLen);
AfxMessageBox("3");
pDBPtr->Update();
}
COM组建中:
STDMETHODIMP CCOMDB::AppendChunk_5(BSTR bstr_FieldName, byte *p_Buf,long * m_nLen)
{
byte *pBuf = p_Buf;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
size=*m_nLen;
char str[30];
sprintf(str,"The size is :%d",size);
MessageBox(NULL,str,"1",MB_OK);
if(pBuf)
{
MessageBox(NULL,"pBuf","1",MB_OK);
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = size;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
MessageBox(NULL,"SafeArrayCreate","1",MB_OK);
for (long i = 0; i < (long)size; i++)
SafeArrayPutElement (psa, &i, (void *) ((pBuf)++) );
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
//下面这条语句,怎么也运行不过去。
m_spADORecordset->GetFields()->GetItem("S_Pic")->AppendChunk(varBLOB);
}
return S_OK;
}
请问怎么解决。