Engine中如何在指定目录创建.sde连接文件?

例如:执行GP工具FeatureClassToGeodatabase,将shp导入到sde中,输出参数需要使用.sde连接文件的绝对路径,不同机器ArcCatalog中默认的.sde文件路径(位于C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.3\ArcCatalog)不同,Engine中如何在指定路径下创建.sde连接文件?
已邀请:

朱新颖

赞同来自:

【解决办法】:
1,使用IWorkspaceFactory.Create方法创建.sde的连接文件,参数中指定该.sde文件的路径和名称,通过IPropertySet设置sde的连接参数,然后在GP工具中引用该.sde文件即可。
2,不通过AO接口的话,也可以使用CreateArcSDEConnectionFile_management工具创建.sde连接文件。注意该工具的调用需要EngineGeoDB许可。


IPropertySet propertySet = new PropertySetClass();
             //直连Orcale数据库
            propertySet.SetProperty(SERVER, );
            propertySet.SetProperty(INSTANCE, sde:oracle11g:192.168.220.132/orcl);
            propertySet.SetProperty(DATABASE, );
            propertySet.SetProperty(USER, sde);
            propertySet.SetProperty(PASSWORD, sde);
            propertySet.SetProperty(VERSION, sde.DEFAULT);
            IWorkspaceFactory sdewf = new SdeWorkspaceFactoryClass();
            string sdePath = @D:\temp\zxy.sde;

            IWorkspaceName wN = sdewf.Create(, sdePath, propertySet, 0);
            FeatureClassToGeodatabase FCTGeo = new FeatureClassToGeodatabase();
            FCTGeo.Input_Features = @E:\ZhuXinying\testData\cc.shp;
            FCTGeo.Output_Geodatabase = sdePath;
            ExecuteGP(FCTGeo);​

要回复问题请先登录注册