ArcEngine对多种数据库图层编辑总结

本文介绍了GIS中非远程与远程数据库的编辑会话管理方法,包括MDB、GDB及SDE库的不同编辑策略。探讨了如何通过StartEditing、StopEditOperation和StopEditing等操作进行数据编辑、撤销及保存,并提出了针对SDE远程数据库的两种解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.对于非远程数据库,如MDB,GDB,由StartEditing开启编辑会话,在StopEditOperation时编辑数据先保存在工作空间,然后可以通过UndoOperation来进行撤销操作,在StopEditing时,可通过参数来控制是否保存在数据库中。

2.对于远程数据库SDE库,若用非远程数据库方式开启编辑会话,在StopEditOperation时所编辑的数据将直接保存在数据库中,此后的撤销重做都无效,以及StopEditing时设置编辑不保存将失效。

解决方案1:用IMultiuserWorkspaceEdit支持多用户编辑类设定esriMESMNonVersioned参数来进行非版本编辑,在StopEditing时,可通过参数来控制是否保存在数据库中。但是撤销、修复功能将不能实现。

解决方案2:用IMultiuserWorkspaceEdit设定esriMESMVersioned进行版本注册编辑,既可实现撤销、修复功能,又可在StopEditing时控制是否将所编辑数据保存到数据库中,如图1。

3.在SDE数据库中编辑,若要实现撤销恢复功能,则其编辑数据必须进行版本注册。且所有的图层编辑操作都要在一组StartEditOperation和StopEditOperation/AbortEditOperation中。

[PS:一个编辑会话可以有多个编辑操作]                                                                         

 

                                                                          图1  数据库的数据编辑总图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值