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使用动态库, ...
随机推荐
- SZU:A26 Anagram
Judge Info Memory Limit: 32768KB Case Time Limit: 10000MS Time Limit: 10000MS Judger: Normal Descrip ...
- MVC应用程序请求密码的功能(二)
MVC应用程序请求密码的功能(二) 在完成<MVC应用程序请求密码的功能(一)>http://www.cnblogs.com/insus/p/3471534.html之后,如果你照着做,所 ...
- Bootstrap3.0(进度条、媒体对象、列表组、面板)
Bootstrap3.0学习第十六轮(进度条.媒体对象.列表组.面板) 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/aehy ...
- windows phone 8环境搭建
windows phone 8 开发系列(一)环境搭建 一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃w ...
- 关于iOS UIScrollView放大的问题
总所周知 ,iOS 的UIScrollView是专门用来做缩放和分页用的,关于这方面的例子也很多了,但你们知道在放大的过程中 他做了些什么吗? 他的哪些东西会发生改变吗? 通过在一个项目中的小经历 ...
- SP2-1503: 无法初始化 Oracle 调用界面
问题描述: win7下,cmd运行 输入sqlplus报一下错误 SP2-1503: 无法初始化 Oracle 调用界面 SP2-0152: ORACLE 不能正常工作 解决办法 1.cmd右键--以 ...
- Android自定义组合控件内子控件无法显示问题
今天自定义了一个组合控件,与到了个奇葩问题: 我自定义了一个RelativeLayout,这个layout内有多个子控件.但奇怪的是这些子控件一直显示不出来.调试了一下午,竟然是因为在获取(infla ...
- tastypie Django REST framework API [Hello JSON]
tastypie is a good thing. Haven't test it thoroughly. Gonna need some provement. Now I will introduc ...
- struts2中token的令牌机制
通常在普通的操作当中,我们不需要处理重复提交的,而且有很多方法来防止重复提交.比如在登陆过程中,通过使用redirect,可以让用户登陆之上重定向到后台首页界面,当用户刷新界面时就不会触发重复提交了. ...
- ColorMatrixFilter色彩矩阵滤镜(as3)
matrix是一个长度为4*5=20的数组,其构成如下所示: R ,G, B, A, offset [1, 0, 0, 0, 0]); // red [0, 1, 0, 0, 0 ...