博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArcEngine对Blob字段赋值的方法
阅读量:5996 次
发布时间:2019-06-20

本文共 701 字,大约阅读时间需要 2 分钟。

今天在测试数据入库程序,发现对某个图层操作之后,调用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);

转载于:https://www.cnblogs.com/ITGIS/archive/2013/01/12/2857758.html

你可能感兴趣的文章
CGI编程读书笔记
查看>>
a标签的link、visited、hover、active的顺序
查看>>
OpenExpressApp:实体扩展属性系统 - 设计方案说明书
查看>>
图解Git
查看>>
杨中科 向HtmlAgilityPack道歉:解析HTML还是你好用
查看>>
【three.js练习程序】创建简单物理场景
查看>>
GridView, DataGrid 中,DataFormatString语法汇总
查看>>
静态成员与实例成员
查看>>
简单实用的操作RMS小例子
查看>>
温习 数据结构之HuffmanTree
查看>>
File:/etc/sysconfig/init解析
查看>>
hdu 4619 Warm up 2(并查集)
查看>>
android文件下载大小和网络不一致(偏大)
查看>>
poj 3370 鸽笼原理知识小结
查看>>
linux kernel启动流程
查看>>
Python之控制台输入密码的方法
查看>>
.net下二进制序列化的格式分析[转]
查看>>
使用Hive的web界面:HWI
查看>>
C#学习笔记—控制台与消息框输出
查看>>
MVC单元测试,使用Repository模式、Ninject、Moq
查看>>