码迷,mamicode.com
首页 > 其他好文 > 详细

ArcEngine对Blob字段赋值的方法

时间:2015-10-07 09:37:42      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

今天在测试数据入库程序,发现对某个图层操作之后,调用StopOperation,会出现“尝试写入或读取受保护的内存”错误。

经过测试,最终发现是因为该图层包含有Blob字段,而代码没有专门对Blob字段进行处理。

解决办法:
1、需要判断字段类型,如果是Blob类型,调用下面辅助方法获取Blob值:

IMemoryBlobStreamVariant varBlobStream = objFieldValue as IMemoryBlobStreamVariant;
if (varBlobStream == null) return null;
object objValue;
varBlobStream.ExportToVariant(out objValue);
byte[] bytesArray = objValue as byte[];

2、然后调用下面方法赋值:

IMemoryBlobStream pMBS = new MemoryBlobStreamClass();
IMemoryBlobStreamVariant varBlobStream = (IMemoryBlobStreamVariant)pMBS;
object objValue = bytesArray;
varBlobStream.ImportFromVariant(objValue);
pFeature.set_Value(posField, varBlobStream);

来自:http://www.cnblogs.com/ITGIS/archive/2013/01/12/2857758.html

ArcEngine对Blob字段赋值的方法

标签:

原文地址:http://www.cnblogs.com/gisoracle/p/4858200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!