背景:  

  最近在开发一个管道数据维护系统的新增模块,牵涉到将这个模块的数据编辑统一到整个系统的编辑处理框架内的问题:即这个系统的所有对数据产生的编辑都需要处在整个系统唯一的开始、保存、回滚编辑的入口内。通俗点说,就是只有当整个系统开始编辑之后才能激发我自己新增的这个模块,然后在这个模块儿内开始对数据进行编辑操作。在这个过程中碰到了这两个概念的使用问题,经过查找定义与实际测试,将二者区别总结如下:

结论:

  • 这两方法都是属于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的区别的更多相关文章

  1. ***php进行支付宝开发中return_url和notify_url的区别分析

    本文实例分析了php进行支付宝开发中return_url和notify_url的区别.分享给大家供大家参考.具体分析如下: 在支付宝处理业务中return_url,notify_url是返回些什么状态 ...

  2. android开发中的 Activity 与 Context 区别与联系

    Context 是 Application /Activity /Service的基类 Intent(Context , Class); Activity中的上下文Context是随着活动的产生而产生 ...

  3. ArcEngine开发中“错误类型"****"未定义构造函数”

    from:http://blog.csdn.net/mengdong_zy/article/details/8990593 问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地 ...

  4. mvc开发中DTO,DO,FROM的区别

    DO:数据库实体类映射到model里的实体类,每个字段都和数据库相对应,一般来说开发的时候不要去添加或者修改里面的实体 DTO:与前台交互的时候(一般来说是查询操作)有一些数据字段是那一张表里面没有囊 ...

  5. 支付宝开发中return_url和notify_url的区别分析

    在处理支付宝业务中出现过这样的问题,付费完成后,在支付宝跳转到商家指定页面时,订单状态已经更新,通过调试发现是支付宝先通知notify_url,完成了订单状态. 支付宝return_url和notif ...

  6. 开发中mysql和oracle的区别

    首先就不描述mysql与oracle在整个数据库系统上的区别了,仅从程序员开发的角度来说: 1.主键: mysql一般会用到一个自增的属性,例如设置一个id字段,类型设置为auto increment ...

  7. PHP 进行支付宝开发中return_url和notify_url的区别分析

    在支付宝处理业务中return_url,notify_url是返回些什么状态呢,我们要根据它来做一些处理就必须了解return_url,notify_url的区别,下面我就来给大家介绍; 一.问题描述 ...

  8. iOS开发中frame与bounds的区别

    闲话不多说,先上两张图,大伙们就已经明白了: 显示出来的效果是这样子滴:  总结: 要理清这两者的区别,最主要的要理解一下几个概念:frame可以理解为可视的范围,而bounds可以理解为可视范围内的 ...

  9. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

随机推荐

  1. Remote验证及其改进(附源码)

    Remote验证及其改进(附源码) 表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等.但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决.这篇文章将会介 ...

  2. JqGrid帮助文档

    JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做什么事情. 下面是转自其他人b ...

  3. 【ios开发】自定义Actionsheet实现时间选择器和省市区选择器

    最近的工程有一个个人资料页面,需要填写生日和地区的信息,需要自己定义个actionsheet. 但是到网上搜了一下都不太合适,只好自己研究研究,重写了一个.共享出来给大家用用,突然发现自己精神很高尚吗 ...

  4. D0

    刚到长乐就被机房里众大神的气场给压倒了 orz....... 然后默默的感觉到自己貌似已经有一个星期没有打题了...就各种忧伤.... 还是说一下今天的计划吧 嗯傍晚5.30-6.00 &&a ...

  5. [转]OPENSOLARIS 2009.06 REPOSITORY ISO IMAGES NOW AVAILABLE

    Source: http://hosam.wordpress.com/2009/07/25/opensolaris-2009-06-repository-iso-images-now-availabl ...

  6. cocos2d(CCSprite 用贝塞尔做抛物线,足球精灵并且同时做旋转放大效果)

    今天刚学到Cocos2d中的动作哪一张,自己做了一个用贝塞尔曲线足球精灵实现同时放大旋转和抛物线动作. 使用 [CCSpawn actions:,,]链接这几个动作,同时做.与CCSequence(一 ...

  7. 什么是DCI

    目录 备注什么是DCI?如何将Role注入到Data中?开发期注入字节码增强MixinTraitTemplateT4 + 部分类 + 显式接口实现 + 扩展类型,C#专用运行期注入Mixin动态代理为 ...

  8. 通过xib自定义UITableViewCell

    通过xib自定义UITableViewCell 一.新建iOS Application工程,选择Single View Application,不要选中Use Storyboard.假设指定的是pro ...

  9. Http的四种post方式

    1.引言 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交 ...

  10. Python自动化测试 -ConfigParser模块读写配置文件

    C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...