| ArcGIS的BLOB字段与Access数据库BLOB字段的交换 |
| 08-10-13 10:27:37 作者:章力博 出处:http://www.cnblogs.com/zhanglibo0626 |
|
| 技术思路:首先利用AE接口获取VARIANT类型的属性值,然后将这个值以文件流的方式写到一个路径下的文件中,然后再根据这个文件形成一个新的COleVariant对象
IMemoryBlobStream2Ptr iMBS;
iMBS.CreateInstance(CLSID_MemoryBlobStream);
IMemoryBlobStreamVariantPtr iMBSV = (IMemoryBlobStreamVariantPtr)iMBS;
iMBSV=varFieldValue.punkVal;(varFieldValue为利用AE接口获取的VARIANT变量)
IBlobStreamPtr bs;
bs=iMBSV;
bs->SaveToFile(g_strBLOBImport.AllocSysString());(以文件流的方式写入指定文件中)
STATSTG tag;
hr = bs->Stat(&tag, STATFLAG_DEFAULT);
unsigned long size;
bs->get_Size(&size);(获得文件流的大小)
CFile file;
CByteArray ba;
if ((file.Open(g_strBLOBImport, CFile::modeRead|CFile::typeBinary)) == NULL) (以二进制的方式打开指定文件)
return NULL;
else
{
for (int j=0; j<size; j++)
{
  (本文已被浏览 次) | | |
|
发布人:admin 推荐给好友: |
上篇新闻: 下篇新闻: | |