ArcSDE10.2在SQL Server上的配置与连接

来源:互联网 发布:抗美援朝有必要吗 知乎 编辑:程序博客网 时间:2024/04/30 12:23

1.为什么要用ArcSDE?

  ArcSDE 允许你利用现有的DBMS 来存储和管理空间数据。ArcSDE 是开放性的,它可以与许多不同的数据库协同工作,包括Oracle,Informix,IBM DB2 和Microsoft SQL Server—规模从工作组到大型企业级数据库。
  ArcSDE 为GIS 和DBMS 提供接口,它能以表的形式来管理空间数据。在一个异构的数据库环境里(使用了不同部门级或个人级的数据库系统),ArcSDE 为空间信息提供了一个通用模型。它使你能充分利用DBMS 为整合你的GIS 信息和部门中其他的数据的设备。它使用户可以利用DBMS 来同时管理空间信息和属性信息。

2.ArcSDE10.2的安装过程

  项目中用到了ArcSDE进行空间数据(矢量、栅格)的管理,因为Desktop安装的是10.2版本,所以ArcSDE对应的版本也选择了10.2,本文就为大家介绍如何安装、配置和连接ArcSDE 10.2,测试数据库选择的是Microsoft SQL Server 2008 R2 ,操作系统是Windows 7 x64,机器名叫USER-20160805WK,与ArcSDE的Server服务器名一致。
  首先要需要安装Microsoft SQL Server 2008 R2与ArcSDE 10.2,需要注意的是ArcSDE 10.2的安装包独立于ArcGIS Desktop,需要单独下载。记得勾选ArcSDE for Microsoft SQL Server。安装过程一只Next就可以了,没什么好说的。
            这里写图片描述

3.ArcSDE10.2的安装后配置

   首先我们需要创建一个地理数据库。ArcSDE 10.2的安装配置与10.1版本相似,同样取消了Post Install向导,很多之前的管理操作改为使用地理处理工具(ArcMap、ArcCatelog)来执行。这里我使用的是的是ArcMap的创建企业级地理数据库(Create Enterprise Geodatabase )工具来创建地理数据库。
           这里写图片描述
      这里写图片描述
      这里写图片描述
  
  参数说明:

Database Platform:SQL_Server
Instance:与主机名相关,这里是“USER20160805WK\SQLEXPRESS”;
Database:地理数据库名称,默认是sde,也可以填其他名称; Authorization
File:授权文件,即.ecp文件,一般和ArcGIS Server的授权文件是同一个;

  其他就是输入数据库管理员,地理数据库管理员的密码。
  设置好参数后,点击OK开始创建地理数据库。失败的话会有提示。
     
     这里写图片描述
  
  创建完成后,将生成SDE系统表,可以在SQL Server Management Studio中查看结果,如下图:
        这里写图片描述
  
  四个主表含义如下

GDB_Items:包含地理数据库中的所有项(例如要素类、拓扑和属性域)的列表
GDB_ItemTypes:包含识别的项类型(例如表)的预定义列表
GDB_ItemRelationships:包含各个项之间的方案关联,例如要素数据集中包含哪些要素类
GDB_ItemRelationshipTypes:包含识别的关系类型(例如DatasetInFeatureDataset)的预定义列表。

  地理数据库已经创建成功,接下来就可以连接到地理数据库了。ArcGIS 10.2中推荐使用直连方式连接,因此默认情况下没有创建SDE系统服务。服务器连接相对复杂,因此推荐使用直连的方式。利用ArcCatalog进行直连,步骤如下:
    这里写图片描述
    
    这里写图片描述
    
  连接成功标识如下:
  
  这里写图片描述

4.在二次开发平台上连接ArcSDE10.2

        在你的程序里连接ArcSDE
        
  我在我的系统中采用了服务器链接的方式,方法如下:

 public void ConnectSDE()         {            IPropertySet propertySet = new PropertySetClass();            propertySet.SetProperty("server", server);            propertySet.SetProperty("instance", service);            propertySet.SetProperty("user",userName);            propertySet.SetProperty("password",passWord);            propertySet.SetProperty("version","SDE.DEFAULT");            IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactory();            //打开sde空间            workspace = workspaceFactory.Open(propertySet,0);        }
0 0
原创粉丝点击