ArcSDE10.1之后直连数据库

博客园账号注册一年多,以一个编程菜鸟的角色,从诸多博友文章中学到许多,解决了不少麻烦,甚是感谢! 今天也终于鼓起勇气申请了一个属于自己的博客,将自己学习和项目经验与博友分享,希望能对大家有所帮助!-----------互相学习----------

最近一直在忙ArcEngine(基于.net框架)的二次开发问题,期间有用到SDE连接Oracle数据库的问题,用过ArcGIS系列软件的都知道,ESRI公司在ArcGIS10.1以后推出了SDE直连数据库的方式(当然传统的SDE连接数据库的方式依旧可以用,具体怎么操作这一块可以问问度娘,或者看看ArcGIS帮助文档),我们本次项目也是采用直连的方式,在代码中我们依旧采用传统的方式访问SDE数据库,结果,问题就出现了!——SDE not Running on server—— 就是这个问题! 困扰好久,浏览ArcSDE帮助文档,官方的解释是重启SDE服务或者采取直连的方式,这不是等于没说嘛,思前想后,断定一定是连接字符串的问题!在询问师兄未果的情况下,终于在一个论坛上找到了解决方法!具体连接方式有两种,分享给大家。(主要是连接Oracle数据库)

一、第一种方式

   Server:服务器名或IP(可以不填)
   INSTANCE: sde:oraclexx:数据库监听名
   Database: 要连接的数据库名(可以不填)
   username: 用户名(最好用SDE用户)
   password: 密码

 

1 1     IPropertySet pPropset = new PropertySetClass();  
2 2     pPropset .SetProperty("Server",null);   
3 3     pPropset .SetProperty("INSTANCE","sde:oracle11g:xxxx");  
4 4     pPropset .SetProperty("USER","sde");  
5 5     pPropset .SetProperty("PASSWORD","sde");  
6 6     pPropset .SetProperty ("DATABASE", "sde");  
7 7     pPropset .SetProperty("VERSION","SDE.DEFAULT");  
8 8     IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass();  
9 9     IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(pPropset ,0); 
View Code

 

 

一、第二种方式

   Server:服务器名或IP(可以不填)
   INSTANCE: sde:oraclexx
   Database: 要连接的数据库名(可以不填)
   username: 用户名(最好用SDE用户)
   password: 密码@数据库监听名

 

1     IPropertySet pPropset= new PropertySetClass();  
2     pPropset.SetProperty("INSTANCE","sde:oracle11g");  
3     pPropset.SetProperty("USER","sde");  
4     pPropset.SetProperty("PASSWORD","sde@testHost");  
5     pPropset.SetProperty ("DATABASE", "sde");  
6     pPropset.SetProperty("VERSION","SDE.DEFAULT");  
7     IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass();  
8     IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(pPropset,0);  
查看代码

 

我差不多就这样解决的,希望能帮到你们!!!

 

posted @ 2016-08-16 21:16  小噶新  阅读(2890)  评论(0编辑  收藏  举报