`

FileGDB的要素编辑

阅读更多

这段时间在做FileGDB的要素编辑,以前做过shp的编辑,以为startedit了就没事了,结果,给我报了一个Objects in this class cannot be updated outside an edit session的错误。我相信大多数朋友都遇到过这个错误,不错是在编辑SDE啊,拓扑图层啊什么的时候,关于这个问题,我找了一点资料,分享:

(感谢旅途:http://blog.csdn.net/mydriverc/archive/2007/09/25/1799749.aspx)

 

问题
      当一个要素类参与了一个拓扑(或Geometry  Network)之后,对该要素类执行创建要素、修改要素图形或属性时,可能会出现这个异常:'Objects in this class cannot be updated outside an edit session'
原因
      这是由于ArcEngine应用程序中使用的License权限不足引起的。在ArcEngine 应用程序里面通过ArcSDE进行编辑需要License'ArcGIS Engine Enterprise Geodatabase',或ArcEditor或ArcInfo。

 

解决办法
      在ArcEngine应用程序的LicenseInitializer.InitializeApplication中,为程序增加Geodatabase的编辑权限。
    Public Function InitializeApplicationFunction InitializeApplication As Boolean

       '……
       licenseStatus = CheckOutLicensesesriLicenseProductCode.esriLicenseProductCodeEngineGeoDB

        licenseStatus = CheckOutLicensesesriLicenseProductCode.esriLicenseProductCodeEngine
      
       '……
    End Function

 

关于许可的区别,在这里:

(1) Registered As Visioned without the option to move edits to base
能够实现的操作包括Undo和Redo操作、长事务编辑、为设计和工程使用命名版本、使用Geodatabase归档、使用数据库复制。
不能做的事:创建拓扑、从拓扑中添加或删除要素、添加和删除拓扑规则、创建几何网络、从几何网络中添加或删除要素类。
(2) registered as visioned with the option to move edits to base
不能够做的事:编辑参与拓扑和几何网络的要素类、数据库归档、数据库复制
(3)not registered as versioned
是最原始的状态,能够实现复杂数据类型,包括拓扑和几何网络的编辑与更新。因为Default版本是数据库中最关键的,需要经常更新,因此需要对Default版本定期备份。

这些资料可以解决很多问题了。但还是没有解决我的问题,因为我是编辑本机的数据,而且要素只是独立的点图层,没有其他的关联。

终于在ESRI论坛里gongcj的回复:

请教ESRI的技术支持,问题已经解决。是初始化License的问题,只选择esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB就可以。多选了反而出问题
 
找到了正确的解决方法。
通过,达到要求。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics