ArcEngine开发中StartEditing和StartEditOperation的区别
背景:
最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始、保存、回滚编辑的入口内。通俗点说,就是只有当整个系统开始编辑之后才能激发我自己新增的这个模块,然后在这个模块儿内开始对数据进行编辑操作。在这个过程中碰到了这两个概念的使用问题,经过查找定义与实际测试,将二者区别总结如下:
结论:
- 这两方法都是属于IWorkspaceEdit接口下的方法
- StartEditing(bool UndoRedo)
- 开始编辑,bool型的参数表示这个编辑框架内的操作是否可以进行Undo和Redo;
- 这个操作是针对一个IWorkspace的,即使一个工作空间开始编辑,可以进行各种数据的增、删、改操作;
- 停止编辑工作空间对应于StopEditing(bool saveEdits),即将所做的编辑最终保存到数据库中;bool型参数表示是否保存所做的编辑到数据库
- StartEditOperation
- 开启一个编辑会话,意思是开始一个局部的编辑操作;
- 比如我打开了整个编辑空间之后,可能需要增加2条数据,那么此时需要进行一次StartEditOperation/StopEditOperation操作,完成增加2条数据;然后我还需要删除3条数据,接着再次进行一次StartEditOperation/StopEditOperation操作,完成我删除数据的目的;
- 你可以在一次StartEditing/StopEditing的范围内,多次进行StartEditOperation/StopEditOperation操作,即在一次编辑内进行多个局部具体的数据编辑操作;
- 注意:这里的StopEditOperation操作,只是将数据保存到工作空间内,还并没有把数据真正保存到数据库内。
- AbortEditOperation
- 回滚操作,将所做的编辑撤销
- 通过方法名比较可以看出,这里的回滚只能针对某一个具体的编辑范围内的操作,即出于一个StartEditOperation/StopEditOperation内的操作;
- 如果你在一次工作空间的开始编辑下进行了多个编辑会话,那么此时你想全部回滚的话,只能是在最后进行StopEditing时将参数设置为false来达到目的
后记:
在一个比较大的系统中进行ArcEngine的编辑时,要注意理解二者之间的关系,更好的将多个模块的数据编辑统一起来。以上理解,如果有补充欢迎指正。
ArcEngine开发中StartEditing和StartEditOperation的区别的更多相关文章
- ***php进行支付宝开发中return_url和notify_url的区别分析
本文实例分析了php进行支付宝开发中return_url和notify_url的区别.分享给大家供大家参考.具体分析如下: 在支付宝处理业务中return_url,notify_url是返回些什么状态 ...
- android开发中的 Activity 与 Context 区别与联系
Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...
- ArcEngine开发中“错误类型"****"未定义构造函数”
from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地 ...
- mvc开发中DTO,DO,FROM的区别
DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...
- 支付宝开发中return_url和notify_url的区别分析
在处理支付宝业务中出现过这样的问题,付费完成后,在支付宝跳转到商家指定页面时,订单状态已经更新,通过调试发现是支付宝先通知notify_url,完成了订单状态. 支付宝return_url和notif ...
- 开发中mysql和oracle的区别
首先就不描述mysql与oracle在整个数据库系统上的区别了,仅从程序员开发的角度来说: 1.主键: mysql一般会用到一个自增的属性,例如设置一个id字段,类型设置为auto increment ...
- PHP 进行支付宝开发中return_url和notify_url的区别分析
在支付宝处理业务中return_url,notify_url是返回些什么状态呢,我们要根据它来做一些处理就必须了解return_url,notify_url的区别,下面我就来给大家介绍; 一.问题描述 ...
- iOS开发中frame与bounds的区别
闲话不多说,先上两张图,大伙们就已经明白了: 显示出来的效果是这样子滴: 总结: 要理清这两者的区别,最主要的要理解一下几个概念:frame可以理解为可视的范围,而bounds可以理解为可视范围内的 ...
- ios 开发中 动态库 与静态库的区别
使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...
随机推荐
- Python Learing(二):Basic Image Processing 1
<写在前面> Basic image processing 1: 0.(以简单的曲线图为例)对于生成的图自定义外观,使用子图,多个数据集,标题,标签,交互式标注,图例: 1.生成散点图,直 ...
- Django模板引擎的研究
Django模板引擎的研究 原创博文,转载请注明出处. 以前曾遇到过错误Reverse for ‘*’ with arguments '()' and keyword arguments' not f ...
- memcache总结
1简介: Memcache(内存缓存) 是一个高性能的分布式的内存对象缓存系统.通过在内存里维护一个巨大的hash表. 其实简单说点就是一个软件,可以用来维护内存,将数据在内存中使用,减少I/O 2工 ...
- python学习之路四(类和对象1)
#encoding:utf-8 ''' Created on 2013-7-29 @author: lixingle ''' #CLass............................... ...
- learn objetive-c
Cocoa Dev Central Objective-C Objective-C is the primary language used to write Mac software. If you ...
- 更好的抽屉效果(ios)
昨天项目基本没啥事了,晚上早早的就回家了,躺在床上无聊地玩着手机(Android的),在清理系统垃圾时被一个“360手机助手”给吸引了, 其实我是被它的那个抽屉效果给吸引了,此时你也许会觉得我out了 ...
- asp.net MVC 路由机制
1:ASP.NET的路由机制主要有两种用途: -->1:匹配请求的Url,将这些请求映射到控制器 -->2:选择一个匹配的路由,构造出一个Url 2:ASP.NET路由机制与URL重写的区 ...
- 机器学习实战kNN之手写识别
kNN算法算是机器学习入门级绝佳的素材.书上是这样诠释的:“存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都有标签,即我们知道样本集中每一条数据与所属分类的对应关系.输入没有标签的新数据 ...
- VS超强调试技巧--忍不住想赞一下
你是否曾遇到一个项目启动都要半分钟? 启动后调试或突然看到有行代码写错了?然后开始了: 处理步骤:停止运行->修改代码->重新启动(10-30秒)->又写错了->又要修改-&g ...
- 【Coursera - machine learning】 Linear regression with one variable-quiz
Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...