基于视图、ADO.Net和ArcEngine空间数据联合存取技术.docVIP

基于视图、ADO.Net和ArcEngine空间数据联合存取技术.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于视图、ADO.Net和ArcEngine空间数据联合存取技术

基于视图、ADO.Net和ArcEngine空间数据联合存取技术   摘要:随着地理信息技术应用的深入,尤其是大型企业的空间信息数据越来越多,对空间数据的管理要求就越来越多,也越来越高。优化最终用户的使用体验、提高数据的存取速度,变得越来越重要了。为了实现这些目标,本文着重介绍如何创建多版本视图,以及如何实现ADO.Net数据源对空间数据库的多表对多表的数据保存。   关键词:多版本视图;空间数据存取;ADO.Net   中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 20-0000-02   1 引言   随着地理信息系统的快速发展,GIS产品也在很多领域广泛应用。众所周知,地理信息与海量数据几乎是同义词,所以对空间数据的管理就显得尤为重要了。基于ArcEngine的二次开发过程中,使用其提供的方法进行数据存取时间开销大,当数据量大,业务复杂时更为明显。故利用视图和ADO.Net技术的优势,来加速数据读取并改善用户体验,是个好选择。本文主要讨论如何综合使用视图、ADO.Net和ArcEngine三种现有技术实现上述目标。   2 联合存取空间数据技术概述   2.1目的   综合使用三个技术进行空间数据的管理,可以解决单独使用ArcEngine技术存在的效率问题和复杂性问题,从而提高空间数据的读取速度,改进保存数据的方式。   2.2存取策略   SDE对空间数据库进行版本注册后,各个要素集同时存在有基表,A表和D表等多个数据表,故不能用SQL直接查询,而是要创建多版本视图来实现。利用视图技术,优化数据库响应;利用ADO.Net技术进行数据展示和离线编辑;将离线数据一次性保存到空间库时,底层使用ArcEngine的方法实现,中层使用ADO.NET的强类型DataSet,分类处理新建、修改以及删除的数据,上层使用若干类实现ADO.NET多表对空间库多表的关系描述和控制。   3 读取数据的实现   3.1多版本视图   多版本化视图将数据库视图、存储过序、触发器和函数整合在一起,用以通过SQL语言访问地理数据库表中指定版本的数据。   下面介绍针对SQL Server Express创建多版本视图的方法。   (1)从SDE_TABLE_REGISTRY表中获取每个空间数据库中表或要素类的REGISTRATION_ID   (2)从SYS.syscolumns表中查找对象表包含的列   (3)创建单个视图   SELECT Fields, 0 SDE_STATE_ID FROM TableName AS b WHERE (NOT EXISTS   (SELECT SDE_STATE_ID, SDE_DELETES_ROW_ID, DELETED_AT FROM DRegID AS d WHERE (b.OBJECTID = SDE_DELETES_ROW_ID) AND (SDE_STATE_ID = 0))) UNION ALL SELECT Fields,SDE_STATE_ID FROM aRegID AS a WHERE (NOT EXISTS(SELECT SDE_STATE_ID, SDE_DELETES_ROW_ID, DELETED_AT FROM DregID AS d WHERE (a.OBJECTID = SDE_DELETES_ROW_ID) AND (a.SDE_STATE_ID=SDE_STATE_ID)))   上面SQL语句中,TableName为表或要素类的名称,Fields为第二步的结果,RegID为第一步中的结果,替换后可创建针对单个要素类的多版本视图。   (4)创建全部视图   对所有需要创建多版本视图的表或要素类执行上一步操作。   3.2 读取视图数据   通过ADO.NET的强类型DataSet实现对多版本视图的读取和界面设计,为日后用户提供良好的操作体验。   4 保存数据的实现   4.1用于数据保存的类   (1)GeoTabType   此类定义了空间数据库中目标表的类型。分为表(ITable)和要素类(FeatureClass)。   (2)GeoTabDescribe   该类用于描述空间数据库中某目标表。包括表名、类型(GeoTabType)和包含的字段。   (3)GeoTabDescribeList   该类是GeoTabDescribe的集合。该类描述了其内包含了哪些表或要素类。   (4)ADOToGeoDescribe   该类描述了一对多保存数据时,表的对应关系。 “一”为一个ADO.Net的DataTable;“多”指的是多个空间数据库表或要

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档