Error: Could not edit any of the map's layers, No data sources in the map are registered as versioned or you lack privileges to

文章编号 : 38022
软件: ArcSDE 9.3, 9.3.1, 10 ArcGIS - ArcInfo 9.3, 9.3.1, 10
操作系统: N/A
已邀请:

EsriSupport

赞同来自:

错误信息: 当打开一个版本编辑会话时,显示下面错误信息
"Could not edit any of the map's layers, No data sources in the map are registered as versioned or you lack privileges to modify data sources which are registered as versioned."
原因: 当针对一个Workspace打开一个版本编辑会话时遇到上述错误。有几种情况都会导致该错误,例如,要编辑的数据没有注册为版本,或者试图打开编辑会话的用户缺少对目标数据进行选择、插入、更新以及删除的权限,这些权限需要数据所有者使用ArcCatalog软件赋予当前编辑用户。
然而,另外一个原因也会导致该错误,如果ArcCatalog或ArcMap程序被锁定,在加载一个geodatabase中的要素类或打开一个编辑会话时其进程被强行杀死或崩溃,然后该要素类将被设置为Load-Only IO模式,从而防止该要素类被意外编辑或修改。

此错误将持续出现,即使目标要素类已注册为版本并且当前用户已被赋予了所有的权限

解决方法: 首先,通过ArcCatalog或ArcMap打开被编辑的要素类对象,检查并确保这些要素类已注册为版本

验证要素类已注册为版本:
1.在编辑工具条点击编辑菜单并在下拉菜单中选择选项
2.在版本选项卡中,反选”Edit a version of the database with the ability to undo and redo checkbox“

验证数据没有被设置为Load-Only IO模式
为了确定该错误是否是因为数据被设置为Load-Only IO模式导致的,可以按照以下步骤

1.因为要检查数据库中所有的数据是否被设置为Load-Only或Normal模式,执行下面的sde命令。该命令将作用于整个数据库。另外,该命令返回的结果很长,因此需要将结果写入一个文本文件,通过在命令的后面添加一个 >output.txt来实现。
命令语法:
sdelayer -o describe
[-i <service> | <port#> | <direct connection>] [-s <server_name>]
[-D <database_name>] -u <DB_user_name> [-p <DB_user_password>] [-q]
示例:
sdelayer -o describe -i sde:sqlserver:GIS -D Landbase >Describe.Landbase1.txt

2.打开上面输出的文本文件,查找哪些数据的I/O模式被设置为LOAD

3.通过下面两步操作将那些被设置为LOAD I/O模式的数据修改为NORMAL模式
(1)使用ArcCatalog打开要素类的属性面板,计算空间索引并保存
(2)执行下面的命令
命令语法:
sdelayer -o normal_io -l <table,column>
[-i <service> | <port#> | <direct connection>] [-s <server_name>]
[-D <database_name>] -u <DB_user_name> [-p <DB_user_password>] [-q]
示例:
sdelayer -o normal_io -l victoria,parcels -u av -p mo -i esri_40



创建时间:2010-07-12
最近更新: 2011-09-30


原文链接
http://support.esrichina.com.c ... .html

要回复问题请先登录注册