• 连接SDE数据库代码



    By  3s4d 发表于 2007-6-5 16:39:00 

    0

    什么是SDE数据库?这个问题要详细地讲解将花费大量的时间,但我可以告诉你SDE数据数据库可以是任何关系数据库。ESRI公司为了使空间数据能保存在关系数据库中,并且能很好的查询相关的空间属性而开发的一个中间件,使用SDE能很好的将空间数据保存在关系数据库中。如Orcale SQL Server 等。SDE具体细节的了解请查找相关的资料,这里只介绍怎么连接SDE数据库。SDE数据库的联机分为直接连接和通过SDE连接。当服务器的性能比较好的时候可以采用SDE连接,否则采用直接连接,这样可以减轻服务器的任务。建议采用直接连接,其实,SDE连接方式和直接连接的方式只是一个属性参数设置的问题。跟个人数据库采用属性连接的方式一样,先定义一个属性对象,然后设置属性参数,接着定义一个工作空间并用SdeWorkspaceFactoryClass()实例化它,接着加在加载图层,至于加载图层的代码,与加载个人数据库中图层的方法一样,其实不只加载这两种数据类型,加载其他类型的数据时也是采用相同的方法加载图层,只是工作空间采用不同的实例而已,下边为完整的示例代码:

    public void AddSDELayer(bool ChkSdeLinkModle)

    {

         //定义一个属性

         IPropertySet  Propset = new PropertySetClass();  

         if (ChkSdeLinkModle==true) // 采用SDE连接

         {  

             //设置数据库服务器名

             Propset.SetProperty ("SERVER", "zhpzh");

             //设置SDE的端口,这是安装时指定的,默认安装时"port:5151"

             Propset.SetProperty ("INSTANCE", "port:5151");

             //SDE的用户名

             Propset.SetProperty ("USER", "sa");

             //密码

             Propset.SetProperty ("PASSWORD", "sa");

             //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置

             Propset.SetProperty ("DATABASE", "sde");

             //SDE的版本,在这为默认版本

             Propset.SetProperty ("VERSION", "SDE.DEFAULT");

         }

         else // 直接连接

         {

            //设置数据库服务器名,如果是本机可以用"sde:sqlserver:."

            Propset.SetProperty ("INSTANCE", "sde:sqlserver:zhpzh");
         }
          IWorkSpaceFactory pWkSpFac = new SdeWorkspaceFactory();

                IWorkSpace pWkSpace = pWkSpFac.open(Propset,0);

      
    /////一下为vb代码
        Dim pWorkspaceFactory As IWorkspaceFactory
    Dim pWorkspace As IFeatureWorkspace
    Dim pPropSet As IPropertySet
    Dim pClass As IFeatureClass
    Dim pLayer As IFeatureLayer
    Dim pMxDoc As IMxDocument

     Set pWorkspaceFactory = New SdeWorkspaceFactory
    Set pPropSet = New PropertySet

     With pPropSet '设置ArcSDE连接属性
    .SetProperty "SERVER", Server
    .SetProperty "INSTANCE", Instance
    .SetProperty "USER", User
    .SetProperty "PASSWORD", Password
    .SetProperty "VERSION", version '可选,缺省为SDE.DEFAULT版本
    End With

     Set pWorkspace = pWorkspaceFactory.Open(pPropSet, 0)
    Set pClass = pWorkspace.OpenFeatureClass(featureClass)
    Set pLayer = New FeatureLayer
    Set pLayer.featureClass = pClass
    pLayer.Name = pClass.AliasName

    Set pMxDoc = ThisDocument
    pMxDoc.AddLayer pLayer
    pMxDoc.ActiveView.PartialRefresh esriViewGeography, pLayer, Noting

  • 相关阅读:
    洛谷 P1097 统计数字
    个人冲刺09
    《需求工程 ——软件建模与分析》读书笔记02
    个人冲刺08
    《需求工程 ——软件建模与分析》读书笔记01
    个人冲刺07
    个人冲刺06
    个人冲刺05
    个人冲刺04
    个人冲刺03
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1396444.html
Copyright © 2020-2023  润新知