编辑宗地结构与版本管理

此主题仅适用于 ArcEditor 和 ArcInfo。

宗地结构支持在默认版本的下一个版本级别状态下进行编辑。宗地结构不支持在各种版本的子版本状态下进行编辑。如果使用结构作业在手动模式下编辑宗地,则默认版本和子版本状态下都可以创建多个宗地结构作业。

编辑宗地结构和版本状态

在 ArcSDE 地理数据库中编辑宗地结构之前,需要先将宗地结构注册为版本。宗地结构注册为版本后,便可以创建一个版本来编辑宗地结构。版本是地理数据库的某种“视图”,您可以对该视图进行编辑并立即查看所做的更改。连接到此版本的其他用户将会在您刷新之后看到这些更改。但是,只有将此版本提交到默认版本,连接到其他版本的用户才能看到这些更改。

将数据集注册为版本后,将创建两个增量表:用于插入和更新的 A(或“添加”)表以及用于删除的 D(或“删除”)表。每次更新或删除数据集中的记录时,都会向这两个表或其中一个表添加行,同时创建一个新的版本状态。因此,版本化数据集包含原始表(称为基表)以及增量表中的所有更改。

了解有关版本管理的详细信息

自动模式下编辑宗地时,将对作业 XML 流执行每项编辑操作。保存编辑会话时,XML 流将作为单项编辑内容提交到宗地结构,同时创建一个新的版本状态。

如果在手动模式下使用宗地作业编辑宗地结构,则编辑内容将保存到作业 XML 流。宗地结构作业提交回宗地结构时(宗地编辑器 > 完成作业),对作业 XML 流所做的全部编辑操作都将作为单项编辑内容提交到宗地结构。保存编辑会话后,将创建新的版本状态。

宗地结构版本和编辑锁定

如果结构中的宗地正在编辑,则这些宗地将变为编辑锁定状态。如果某宗地处于编辑锁定状态,则在编辑锁解除之前,都无法在同一版本或另一版本中打开该宗地。但在已锁定宗地的属性表中,宗地、线、点和控制表中的非系统管理字段仍可进行编辑。如果同一字段在不同的版本中都进行了编辑,则协调版本时必须使用冲突解决方案。

查看已锁定宗地的属性表中哪些字段属于可编辑字段。

如果宗地在与您要进行编辑的版本不同的版本中正被编辑,则在宗地浏览器 窗口中这些宗地将显示为带有编辑已锁定图标 锁定编辑。同样,您正在编辑的宗地也将处于锁定状态,而任何其他版本中的编辑操作将无法进行。正在编辑的宗地所属版本提交后,宗地编辑锁定将解除。

下方列表汇总了管理多用户环境下各已锁定宗地行为的规则:

编辑锁定状态图标汇总

宗地

宗地可进行编辑。

宗地编辑

宗地当前正在编辑。

解锁编辑

宗地先前经过编辑并且现在可用。

锁定编辑

宗地当前正在同一版本中编辑或已在其他版本中进行过编辑。

编辑锁定状态图标汇总

在手动模式下使用结构作业时的编辑锁定

如果在手动模式下使用结构作业进行操作,则相同的宗地锁定规则适应于以下情况:

  • 各结构作业在相同的版本和不同的版本中均可相互重叠。如果宗地正在某作业中进行编辑,而该作业与同一版本中您的作业重叠,则在宗地浏览器 窗口中该宗地将显示为带有编辑已锁定图标 锁定编辑。重叠的作业关闭后(宗地编辑器 > 完成作业),编辑锁定将解除,并且在宗地浏览器 窗口中该宗地将显示为带有编辑已解锁图标 解锁编辑
  • 如果宗地正在某作业中进行编辑,而该作业与另一版本中您的作业重叠,则重叠作业中正在编辑的宗地将保持锁定状态,直到版本被提交。在宗地浏览器 窗口中该宗地将显示为带有编辑已锁定图标 锁定编辑。版本提交后,此版本中的所有作业都将标记为已提交,并且宗地的编辑锁定将解除。要编辑这些宗地,需要将您的版本与默认版本进行协调。
  • 如果某宗地在宗地浏览器 窗口中列为已锁定,则在宗地浏览器 窗口中单击此宗地可以查看哪个版本和用户正在编辑此宗地。用户和版本名称显示在 ArcMap 窗口右下方的状态栏中。
  • 即使不会立即编辑宗地,也可以为结构作业中的宗地手动添加编辑锁定。如果宗地作为编辑作业宗地添加,编辑锁定可通过创建新作业 对话框添加。要在打开的作业中添加编辑锁定,还可在宗地浏览器 窗口中右键单击某宗地,然后单击锁定所选宗地。这些宗地在所有版本中均将处于锁定状态。但在同一版本中,作业关闭时宗地将始终处于解锁状态。
  • 刷新宗地浏览器 窗口后,宗地锁符号将被更新,从而在作业中后来变为编辑已锁定状态的宗地旁显示编辑已锁定图标 锁定编辑

协调版本和宗地结构

完成某一版本的编辑后,可将对该版本进行的更改同默认版本合并。通过一个协调并提交的过程即可完成此操作。协调将检测您的版本与默认版本之间的冲突。如果您的版本创建后默认版本发生了变化,并且这些变化与您的编辑内容冲突,此时便会出现冲突现象。例如,在某宗地结构中,对重叠区域运行最小二乘平差将产生坐标冲突。宗地结构中的冲突解决方案始终优先处理子版本。

注注:

宗地结构作业表不属于版本化表,因此不受宗地结构版本中协调的影响。

了解有关协调版本的详细信息

建议经常根据默认版本对宗地结构进行版本协调。将子版本同默认版本进行协调时,子版本将收到后来从其他子版本中提交到默认版本中的所有更新。

宗地数据的编辑内容和更新内容通常采用长事务的形式。在宗地结构中,宗地编辑内容可以跨越较长的时期。版本协调可通过默认版本中新的当前数据更新版本。这对于持续编辑版本化的宗地结构至关重要。

下方列出了一些在将版本化的宗地结构与默认版本进行协调时可能收到的更新示例:

冲突解决

根据默认版本对包含宗地结构的版本进行协调时,将在以下情况下检测到冲突:

  • 点坐标在默认版本和子版本之间发生了变化。
  • 非系统管理字段中的属性值在默认版本和子版本之间发生了变化。

将在以下情况下发生点坐标冲突:

  • 默认版本和子版本中运行过最小二乘平差。
  • 在所协调的子版本中以及已提交到默认版本的另一子版本中运行最小二乘平差。

在宗地结构中,始终优先解决最新一组已校正坐标的坐标冲突。因此,协调经过校正的子版本时,以下情况真实可信:

  • 默认版本中经过校正的坐标同子版本中经过校正的坐标相比:子版本优先。
  • 子版本中控制点坐标的冲突将优先解决。

提交版本和宗地结构

提交包含宗地结构的版本时,所有宗地编辑锁定均将解除。如果版本中创建了作业,则作业状态将更改为“已提交”。已提交作业可从作业名册中删除。已提交作业无法重新打开,但作业属性仍然可见(如作业中使用过哪些宗地)。

要平移并缩放至已提交作业,您需要将以下空 BLOB 字段添加到作业表:

这些字段显示在作业表中后,您便能够缩放和平移至已提交作业中的宗地。

权限、版本和宗地结构

如果在版本化的数据库环境中创建宗地结构,需要谨慎考虑授予宗地结构的权限以及授予可能要进行宗地编辑的所有数据库版本的权限。这是因为对版本执行的操作过程(例如协调或删除版本)可能触发对宗地结构执行的操作过程。由于授予版本的权限不受宗地结构权限的影响,因此即使用户没有编辑某版本中所含宗地结构的权限,也可以拥有协调、提交或删除版本的权限。如果发生此类权限不匹配的情况,有关版本的操作可能会失败(协调和提交版本),或者宗地结构数据可能受到某种程度的破坏(版本被删除)。

必须建立任意一种包含宗地结构的多版本系统,以下陈述才始终为真:对某版本执行会影响到该版本中宗地结构的操作的所有用户必须具有对该宗地结构及所有关联要素类进行更新的权限。

注注:

涉及到版本时,需要使用术语权限 (permission) 描述用户的访问权限;而涉及到数据库中的表和数据集时,则应使用术语权限 (privilege)

版本权限

创建版本时可使用三种权限设置之一。这些权限设置需要与各数据集的权限设置共同起作用。例如,用户对版本和数据集本身都可以进行更新,才能编辑版本中数据集的要素。

以下便是这三种权限设置:

  • 私有:只有版本的所有者可以查看和编辑版本中的数据集。只有版本的所有者可以对版本执行操作(如删除和协调)。
  • 受保护的:所有用户均能查看版本中的数据集,但只有版本的所有者可以进行编辑。只有版本的所有者可以对此版本执行操作。
  • 公共:所有用户均可以查看和编辑版本中的数据集。所有用户均可以对版本执行操作。

权限和宗地结构

各宗地结构必须在要素数据集中创建。宗地的所有者将自动拥有更新权限。要授予其他用户对宗地结构的权限,可以更改针对包含宗地结构的要素数据集的权限。这样,宗地结构的行为便与要素数据集中所含其他要素类完全相同。

对于未在要素数据集中创建的要素类,可以为特定用户直接授予针对该要素类的权限。

可针对特定数据集授予的权限共有如下几种:

  • (默认):用户无法查看或编辑数据集。
  • 选择: 用户可以读取和查询数据集。
  • 选择、更新、插入、删除: 用户具有对数据集的完全读/写权限。

宗地结构中编辑操作的类型

宗地结构编辑操作可以采取两种形式:

  1. 宗地结构类本身(例如,宗地、线和控制点)可通过“宗地编辑器”编辑。
  2. 其他要素类可关联到宗地结构。随后系统可将最小二乘平差的结果传递到这些要素类,从而编辑它们的几何。

在第一种情况下,执行编辑操作的用户必须具有对包含所编辑宗地结构的要素数据集进行更新的权限。在第二种情况下,用户必须对宗地结构和关联的要素类都具有更新权限。

如果尚未对宗地结构进行编辑或未对与版本中所协调、提交或删除的宗地结构相关联的任何要素类进行编辑,则不必对宗地结构或其关联的要素类具有更新权限。

下图汇总了必须为对某版本(所含宗地结构及其关联要素类已在父版本或所考虑的子版本中进行过编辑)执行操作的用户授予的权限。

宗地结构权限表
宗地结构权限

相关主题


7/10/2012