养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

arcgis中的对数据进行存档的过程

时间:2024-11-10 12:45:08

在版本化数据集上启用存档将创建存档类,并用DEFAULT版本中存在的当前数据填充存档类。存档类使用gdb_from_date和gdb_to_date来保存存档更改的时间。

工具/原料

arcgis

电脑

方法/步骤

1、表示时间理解记录更改时ArcGIS如何表示时间十分重要。通常可以用有效时间或事务时间记录历史。有效时间是在真实世界里发生更改的实际时刻,并通常由正在应用更改的用户记录下来。事务时间是在数据库中记录事件的时间。系统会自动生成事务时间。当将更改保存到或提交到DEFAULT版本时,ArcGIS使用事务时间(基于当前服务器时间)来记录对数据所做的更改。事务时间和在真实世界中发生该事件的时间很少是同一时间。在真实世界中发生的事件和在数据库中记录的事件之间会有时间差。例如,2006年5月14日销售了一块宗地,然而直到2006年6月5日才记录此数据更改。针对这一更改,2006年6月5日将作为事务时间被记录到存档类。当发生编辑时,ArcGIS会将事务存档到存档类。真实世界事件的时间和事务时间之间的区别可能看起来不是很明显,但当根据存档信息执行查询时就会变得十分明显。在生产系统中,编辑和更新数据方面的工作积压是很普遍的事,这将导致有效时间和事务时间之间的时间滞差。如果许多不同用户或部门编辑数据库,在这种多用户环境中记录历史时,有效时间和事务时间之间的差异也是一个问题。在数据库中执行和记录更改的顺序可能与真实世界中发生这些更改的顺序不一致。

2、启用存档当启用存档时,指定类的表示DEFAULT版本的所有行都将按同一时间戳被复制到存档类。所有行的gdb_from_date属性都带有启用存档操作的日期和时间的时间戳。所有行的gdb_to_date属性都带有12/31/9999时间戳。无论何时只要一个属性具有gdb_to_date12/31/9999,它都是DEFAULT版本中对象的当前表示。当将编辑内容保存或提交到DEFAULT版本时,地理数据库会自动将更改存档到存档类。这意味着在DEFAULT版本中创建的要素在存档类中被表示为带gdb_from_date属性值和gdb_to_date属性值的行,其中gdb_from_date属性值被设置为存档操作的时间戳,gdb_to_date属性值被设置为12/31/9999。在DEFAULT版本中更新的要素通过将gdb_to_date属性值设置为存档操作的时间戳来更新存档中的关联行,并插入带gdb_from_date属性值和gdb_to_date属性值的新行,其中gdb_from_date属性值被设置为存档操作的时间戳,gdb_to_date属性值被设置为12/31/9999。在DEFAULT版本中删除的要素通过将gdb_to_date属性值设置为等于存档操作的时间戳来更新存档类中的关联行。

3、更新存档表在单个数据库事务中执行。如果在事务过程中遇到了错误,则回滚整个存档操作,因而也不会完成保存或提交操作。一旦改正了错误,就可以再次执行保存或提交操作。对于每个存档操作,DEFAULT历史标记使用存档操作的值进行更新。当使用历史版本并选择DEFAULT历史标记时,这确保存档类的当前表示等同于事务DEFAULT版本中的版本化类的表示。访问存档类实际上可以比使用等同的版本化类占用较少的数据库资源。如果应用程序开发者对捕捉存档操作时间的事件感兴趣,可参阅“软件开发者工具包”中的Iversionevents2接口上的OnarchiveUpdated事件。对历史版本的查询在存档类上执行:

arcgis中的对数据进行存档的过程

4、对事务版本的查询仍然在基表和增量表上执行:

arcgis中的对数据进行存档的过程

5、添加要素在地籍数据库中的要素显示宗地号116及其在存档类中的对应行。gdb_from_date显示创建时间和日期,而gdb_to_date显示12/31/9999,因为自从启用存档以来还没有修改或删除要素。

arcgis中的对数据进行存档的过程

6、当插入要素(宗地117)并将编辑内容提交到DEFAULT版本时,会在存档类中插入新行,同时gdb_from_date通过此提交操作的时间戳进行更新。新行的gdb_to_date属性显示12/31/9999,因为还没有更新或删除该要素。

arcgis中的对数据进行存档的过程

7、更新要素当更新要素时,会通过存档操作的时间戳设置gdb_to_date,并插入新行以显示要素的当前表示。此新行的gdb_from_date通过存档操作的时间进行设置,而gdb_to_date仍将显示12/31/9999,因为还没有修改或删除该行。下图显示执行更新操作前的两块宗地116和117,它们相应的gdb_from_date和gdb_to_date属性都位于存档类中。

arcgis中的对数据进行存档的过程

8、如果扩展了宗地117的宗地边界,并将这些编辑内容提交到DEFAULT版本,则gdb_to_date将通过存档操作的时间戳进行更新,并创建一个新行。该新行的gdb_from_date属性将通过存档操作的时间和日期进行设置。

arcgis中的对数据进行存档的过程

9、删除要素当删除要素时,gdb_to_date将通过存档操作的时间戳进行更新。下图显示宗地116和117,它们相应的gdb_from_date和gdb_to_date属性都位于存档类中。

arcgis中的对数据进行存档的过程

10、如果现在删除宗地117,并将这些编辑内容提交到DEFAULT版本,则gdb_to_date属性将通过存档操作的时间戳进行更新。

arcgis中的对数据进行存档的过程

© 一点知识