zoukankan      html  css  js  c++  java
  • ArcGIS Engine 添加SDE数据库

    public void AddSDELayer(bool ChkSdeLinkModle)
    {
      //定义一个属性 
      IPropertySet propset = new PropertySetClass(); 
      if (ChkSdeLinkModle == true) // 采用SDE连接 
      {
          //设置数据库服务器名 
          propset.SetProperty("SERVER", "192.168.188.128");
          //设置SDE的端口,这是安装时指定的,默认安装时"port:5151" 
          propset.SetProperty("INSTANCE", "port:5151");
          //SDE的用户名 
          propset.SetProperty("USER", "sa");
          //密码 
          propset.SetProperty("PASSWORD", "123456");
          //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置 
          propset.SetProperty("DATABASE", "esri_sde");
          //SDE的版本,在这为默认版本 
          propset.SetProperty("VERSION", "SDE.DEFAULT");
      }
      else // 直接连接  
      {
          //设置数据库服务器名,如果是本机可以用"sde:sqlserver:." 
          propset.SetProperty("INSTANCE", "sde:sqlserver:192.168.188.128");
          //SDE的用户名 
          propset.SetProperty("USER", "sa");
          //密码 
          propset.SetProperty("PASSWORD", "123456");
          //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置             
          propset.SetProperty("DATABASE", "esri_sde");
          //SDE的版本,在这为默认版本 
          propset.SetProperty("VERSION", "SDE.DEFAULT");
       }
       //定义一个工作空间,并实力化为SDE的工作空间 
       IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass();
       //打开SDE工作空间,并转化为地物工作空间 
       IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(propset, 0);
       /*定义一个地物类,并打开SDE中的管点地物类,写的时候一定要写全.如SDE中有一个管点层,你不能写成IFeatureClass Fcls = Workspace.OpenFeatureClass ("管点");这样,一定要写成下边的样子.*/
       IFeatureClass Fcls = Workspace.OpenFeatureClass("esri_sde.DBO.道路");
       IFeatureLayer Fly = new FeatureLayerClass();
       Fly.FeatureClass = Fcls;
       axMapControl1.Map.AddLayer(Fly);
       axMapControl1.ActiveView.Refresh();
    }

     -------------------------------------------------------------------------------------------------------------------------------

    public static void test()  

           {  

    try  

               {  

                   IWorkspace pWS = GetSDEWorkspace("localhost", "localhost/orcl", "sde", "sde", "sde.DEFAULT");  

                   IDatabaseConnectionInfo4 pDCInfo = pWS as IDatabaseConnectionInfo4;  

                   IEnumUserInfo pEnumUsers = pDCInfo.ConnectedUsers;  

                   IUserInfo pUser = pEnumUsers.Next();  

    int pSessionID;//获得连接用户的sessionID   

    string sUserName = "";//连接用户名称  

    string sClientName = "";//连接用户的机器名  

    string sConnetionTime = "";//连接用户的开始连接时间  

    while (pUser != null)  

                   {  

    if (!pUser.IsOwnConnection)  

                       {  

                           pSessionID = pUser.SessionID;  

                           sUserName = pUser.Name;  

                           sClientName = pUser.ClientName;  

                           sConnetionTime = pUser.ConnectionTime.ToString();  

    //通过用户的sessionID断开用户连接  

                           pDCInfo.DisconnectUser(pSessionID);  

                       }  

                       pUser = pEnumUsers.Next();  

                   }  

               }  

    catch (Exception e)  

               { }  

           }  

    public static IWorkspace GetSDEWorkspace(string sServerName, string sInstancePort, string sUserName, string sPassword, string sVersionName)  

           {  

               IPropertySet2 set = new PropertySetClass();  

    set.SetProperty("Server", "");  

    set.SetProperty("DBCLIENT", "Oracle");  

    set.SetProperty("Instance", "sde:oracle11g:" + sInstancePort);  

    set.SetProperty("User", sUserName);  

    set.SetProperty("password", sPassword);  

    set.SetProperty("version", sVersionName);  

               IWorkspaceFactory2 class2 = new SdeWorkspaceFactoryClass();  

    try  

               {  

    return class2.Open(set, 0);  

               }  

    catch (Exception ex)  

               {  

    return null;  

               }  

           }

    ---------------------------------------------------------------------------------------------------------

    ArcGISEngine10.1

    访问

    ArcSDE 

    直连式

     

    IWorkspace

    pWkspace = 

    null

                ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    workspaceFactory = 

    null

    ESRI.ArcGIS.esriSystem.

    IPropertySet

    pPropertySet = 

    new

    ESRI.ArcGIS.esriSystem.

    PropertySetClass

    (); 

    pPropertySet.SetProperty(

    "SERVER"

    "lingy"

    ); 

    pPropertySet.SetProperty(

    "INSTANCE"

    "sde:oracle11g:orcl"

    ); 

    pPropertySet.SetProperty(

    "AUTHENTICATION_MODE"

    "DBMS"

    ); 

    pPropertySet.SetProperty(

    "USER"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "PASSWORD"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "VERSION"

    "SDE.DEFAULT"

    ); 

    workspaceFactory = 

    (ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    )

    new

    ESRI.ArcGIS.DataSourcesGDB.

    SdeWorkspaceF

    actoryClass

    (); 

    pWkspace = workspaceFactory.Open(pPropertySet, 0); 

     

    服务式

     

    IWorkspace

    pWkspace = 

    null

                ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    workspaceFactory = 

    null

    ESRI.ArcGIS.esriSystem.

    IPropertySet

    pPropertySet = 

    new

    ESRI.ArcGIS.esriSystem.

    PropertySetClass

    (); 

    pPropertySet.SetProperty(

    "SERVER"

    "lingy"

    ); 

    pPropertySet.SetProperty(

    "INSTANCE"

    "esri_sde"

    ); 

    pPropertySet.SetProperty(

    "DATABASE"

    "orcl"

    ); 

    pPropertySet.SetProperty(

    "USER"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "PASSWORD"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "VERSION"

    "SDE.DEFAULT"

    ); 

    workspaceFactory = 

    (ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    )

    new

    ESRI.ArcGIS.DataSourcesGDB.

    SdeWorkspaceF

    actoryClass

    (); 

    pWkspace = workspaceFactory.Open(pPropertySet, 0); 

     

     
  • 相关阅读:
    回调那些事儿
    v-if和v-show小对比
    导出下载功能
    vue和react
    Redis 实现抢票
    MySQL 各种连接,
    MySQL的分组,降序 实现
    MySQL 窄表转宽表
    EX: 判断密码, 判断字符必须包含大写,小写,数字,特殊字符 ,并且键盘不能连续
    hive 基础
  • 原文地址:https://www.cnblogs.com/raorao1994/p/7244517.html
Copyright © 2011-2022 走看看