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);  
查看代碼

 

我差不多就這樣解決的,希望能幫到你們!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM