博客园账号注册一年多,以一个编程菜鸟的角色,从诸多博友文章中学到许多,解决了不少麻烦,甚是感谢! 今天也终于鼓起勇气申请了一个属于自己的博客,将自己学习和项目经验与博友分享,希望能对大家有所帮助!-----------互相学习----------
最近一直在忙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);
一、第二种方式
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","[email protected]"); 5 pPropset.SetProperty ("DATABASE", "sde"); 6 pPropset.SetProperty("VERSION","SDE.DEFAULT"); 7 IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass(); 8 IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(pPropset,0);
查看代码
我差不多就这样解决的,希望能帮到你们!!!