许多人提出用GETCHUNK()及APPANDCHUNK()处理Binary数据,其实根本不行。

tigerVC 2004-11-17 02:28:14
GetChunk及AppendChunk()只是对Image型的数据类型才有用,用这个处理一个Binary类型根本就不行,看了以前的一些贴子,取数据有一个成功的例子是用pRs->Fileds->Items(cc)->GetValue();而不是用GetChunk,如何能写入数据现在没有看到好的方法,我试了好多都不行,读入图像用appandChunk是可以的,可是如果是一个unsigned char *pBuf数据要读入到类型为Binary的数据字段,不知如何能办到,有那位知道,能说一下自己 的看法。?谢谢。
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
heyongzhou 2004-11-19
  • 打赏
  • 举报
回复
我刚好也有相同的问题.
你是怎么取的? "pRs->Fileds->Items(cc)->GetValue();" 赋值给哪种类型?
如何放入 char * P
heyongzhou 2004-11-19
  • 打赏
  • 举报
回复
存储过程中使用了binary(10),如何输入??????????????????????????????????????????????????????????????????????????????????
heyongzhou 2004-11-19
  • 打赏
  • 举报
回复
读取可以这样!
int lDataSize = m_pRecordset->GetFields()->GetItem("a")->ActualSize;

if(lDataSize>0){

_variant_t varBLOB;
varBLOB = m_pRecordset->GetFields()->GetItem("a")->GetValue();
char *pTmp = NULL;

::SafeArrayAccessData(varBLOB.parray, (void **)&pTmp);

//使用pTmp
;

::SafeArrayUnaccessData(varBLOB.parray);
}

另外,存储过程中使用了binary(10),如何输入!!!!!
Kudeet 2004-11-19
  • 打赏
  • 举报
回复
参考下面的代码,是读声音文件的
long lDataSize = m_adoRecordSet.GetFields()->GetItem("声音")->ActualSize;
if(lDataSize > 0)
{
_variant_t varBLOB;
varBLOB = m_adoRecordSet.GetFields()->GetItem("声音")->GetChunk(lDataSize);
if(varBLOB.vt == (VT_ARRAY | VT_UI1))
{
char *pBuf = NULL;
SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
sndPlaySound(pBuf, SND_MEMORY | SND_SYNC | SND_NODEFAULT );
SafeArrayUnaccessData(varBLOB.parray);
}
}

4,011

社区成员

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

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