收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:VC下ADO开发实践之二VC下ADO开发实践之二

2004-02-14 09:34 出处: 作者:王骏 责任编辑:pjl
3.2 BLOB数据的读取 对应于保存数据时我们所使用的AppendChunk函数,读取数据应该使用GetChunk函数,GetChunk的原型如下: _variant_t GetChunk (long Length ); 给出数据的长度后GetChunk将返回包含数据的VARIANT类型变量,然后我们可以利用SafeArrayAccessData函数得到VARIANT变量中指向数据的char *类型的指针,以方便我们的处理,具体代码如下: long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize; ///得到数据的长度 if(lDataSize > 0) { _variant_t varBLOB; varBLOB = m_pRecordset->GetFields()->GetItem("photo")->GetChunk(lDataSize);   if(varBLOB.vt == (VT_ARRAY | VT_UI1)) ///判断数据类型是否正确   {   char *pBuf = NULL;   SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);   ///得到指向数据的指针 /*****在这里我们可以对pBuf中的数据进行处理*****/   SafeArrayUnaccessData (varBLOB.parray);   } } 以上我们成功实现了BLOB数据在数据库中的存取,为了让大家有现成的例子可以参考,本文提供了示例工程,在示例工程中我们在数据库中保存图像数据,并可以对这些图像进行浏览、修改,该例子还涉及到如何用char *指向的BMP文件数据创建BITMAP对象然后显示出来。 点这里下载示例工程 四、后记 在上一篇文章《ADO第一次亲密接触》发表后,得到了广大网友的大力支持和鼓励,还指正了文章中的错误之处,这些都促使我继续写下了这篇文章,在此向这些网友表示衷心的感谢,对于本文的错误之处也希望批评指正!
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部