一个问了很久没人回的问题,不知道有没人回

cenchure 2005-11-23 11:04:10
//rs 数据库为ACCESS 写图象进入时候 sql="select * from table where id=1"
//byte* pByte
//得到了RS
CComVariant buf= pByte;
//第6为一OLE对象 类型
rs->PutCollent((long)6,buf);/////////这里出错了
rs->Update();
请人指点啊
...全文
89 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
stavck 2005-11-23
  • 打赏
  • 举报
回复
插入OLE对象不能这样插入
一个往数据库中插入图片的例子:
m_pLogRec->AddNew();

VARIANT varChunk;
SAFEARRAY *psa = NULL;
SAFEARRAYBOUND rgsabound[1];

FILE* fp = NULL;
TCHAR pszFile[255];
sprintf(pszFile, "%s\\0.jpg", m_pszTempPath);

fp = fopen(pszFile, _T("rb"));
if(fp != NULL)
{
BYTE bVal[BUFSIZE+1];
UINT uIsRead = 0;
while(1)
{
uIsRead = fread(bVal, 1, BUFSIZE, fp);
if(uIsRead == 0)
{
break;
}
rgsabound[0].cElements = uIsRead;
rgsabound[0].lLbound = 0;

psa= SafeArrayCreate(VT_UI1, 1, rgsabound);
if(psa !=NULL)
{
void * pArrayData = NULL;
SafeArrayAccessData(psa,&pArrayData);
memcpy(pArrayData,bVal,uIsRead);
SafeArrayUnaccessData(psa);
}
else
{
lPicFlag = 0;
break;
}

varChunk.vt = VT_ARRAY|VT_UI1;

varChunk.parray = psa;

m_pLogRec->Fields->GetItem("Pic")->AppendChunk(varChunk);
lPicFlag = 1;
::VariantClear(&varChunk);
::SafeArrayDestroyData(psa);

if(uIsRead < BUFSIZE)
break;
}
fclose(fp);

}
m_pLogRec->Update();

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧