/// <summary>
///获取保存的SDE文件
/// </summary>
/// <param name="sdePath"></param>
/// <returns></returns>
public static bool SaveSdeConnectionFile(string sdePath)
{
try
{
// 如果已经存在了,则删除了重新创建
if (File.Exists(sdePath))
{
File.Delete(sdePath);
}
IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactoryClass();
// 创建.sde文件
IWorkspaceName workspaceName = workspaceFactory.Create(Path.GetDirectoryName(sdePath), Path.GetFileNameWithoutExtension(sdePath), InitFromSdeConfig(), );
// 使用.sde文件,通过.sde文件获取IWorkspace,之后就可以对数据库中的数据进行操作了
// IWorkspace pWorkspace = workspaceFactory.OpenFromFile(sdePath, 0);
return true;
}
catch (Exception e)
{
Console.WriteLine(e);
}
return false; }
//获取sde连接串
private static IPropertySet InitFromSdeConfig()
{
string strFilePath = AppConfig.SdeConfig;
if (!File.Exists(strFilePath))
return null;
//读XML
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(strFilePath); string txtServer = "", txtService = "", txtUserId = "", txtPassword = "";
string type = "";
try
{
XmlNode nodeSde = xmldoc.SelectSingleNode("SDE");
//SDE信息
txtServer = nodeSde.SelectSingleNode("Server").InnerText;
txtService = nodeSde.SelectSingleNode("Service").InnerText;
type = nodeSde.SelectSingleNode("Type").InnerText;
txtUserId = nodeSde.SelectSingleNode("User").InnerText;
txtPassword = nodeSde.SelectSingleNode("Pass").InnerText;
}
catch
{
} IPropertySet mPPropSet = new PropertySetClass();
//string strIsDerect = comboBoxEditType.SelectedIndex.ToString();
//设置SDE连接属性信息:直连或非直连
if (type == "")
{
mPPropSet.SetProperty("SERVER", txtServer);
mPPropSet.SetProperty("INSTANCE", txtService);
//mPPropSet.SetProperty("Database", "");
mPPropSet.SetProperty("AUTHENTICATION_MODE", "DBMS");
mPPropSet.SetProperty("User", txtUserId);
mPPropSet.SetProperty("password", txtPassword);
mPPropSet.SetProperty("version", "SDE.DEFAULT");
}
else if (type == "")
{
mPPropSet.SetProperty("INSTANCE", txtService);
mPPropSet.SetProperty("User", txtUserId);
mPPropSet.SetProperty("password", txtPassword);
mPPropSet.SetProperty("version", "SDE.DEFAULT");
}
_dbConnName = txtService;
return mPPropSet;
} private static string GetSdeConn()
{
string sdeconn = AppConfig.SdeConnString;
if (SdeDbUtil.SaveSdeConnectionFile(sdeconn))
{
return sdeconn;
}
return "";
} //调用执行代码 //如果polyFeatureName的参数为空字符串,则直接进行数据的拷贝工作
//关于SDE要素的连接字符串描述参见:pFieldMappings.AddTable(“C:\\XXX\XXX\\Connection to XXX.sde\\" + pFeatureClass.FeatureDataset.Name + "\\" + pFeatureClass.AliasName) http://blog.sina.com.cn/s/blog_5d25ac4e0100uhob.html
//将分析的数据保存到GDB数据库中
string srcFeatureClassPath = "";
string srcOutPath = "";
string resFeatureOutPath;
string sdeFile = GetSdeConn();
if (string.IsNullOrEmpty(sdeFile))
{
MessageBoxHelper.ShowMessageBox("无法获取成果库的连接!");
return "";
} if (!string.IsNullOrEmpty(pntFeaturnName))
{
string srcDbPath = string.Format(@"{0}\{1}", sdeFile, pntFeaturnName);
string outName = string.IsNullOrEmpty(outFeatureName) ? pntFeaturnName : outFeatureName; srcOutPath = string.Format(@"{0}\{1}", CurrentWorkGdbPath, AnalysisResHelper.GetAnalysisTempName(outName));
GPSelectFeaturesCore selectFeaturesCorePnt = new GPSelectFeaturesCore();
selectFeaturesCorePnt.InputFeatures = srcDbPath;
selectFeaturesCorePnt.OutputFeatureClass = srcOutPath;
selectFeaturesCorePnt.WhereClause = pntFilterCondition;
selectFeaturesCorePnt.DoAnalysis();
}

生成sde的更多相关文章

  1. [ArcGIS]Oracle RAC下创建地理数据库(Create Enterprise Geodatabase)失败的解决方法

    转载请注明原文地址:http://www.cnblogs.com/litou/p/8028843.html 环境:Oracle 11g 11.2.0.1.0(双节点RAC群集),ArcGIS Desk ...

  2. Oracle 11g数据库详解(2)

    FAILED_LOGIN_ATTEMPTS 用于指定连续登陆失败的最大次数 达到最大次数后,用户会被锁定,登陆时提示ORA-28000 UNLIMITED为不限制 精确无误差 是 实时 PASSWOR ...

  3. 汇总10.4版本ArcGIS Server与ArcMap 安装+SDE+注册数据源(非破解)

    文档参考了Server技术支持部各位前辈的总结文档. win10 + Server 10.4 +  ArcMap 10.4 + Oracle instant client (32位 和 64位) 安装 ...

  4. nORA-01000: 超出打开游标的最大数(SDE连接)

    1.运行ArcObjects代码报错: IFeatureCursor pCursor = null; try { pCursor = m_pCatchLayer.m_pFeatureClass.Sea ...

  5. linux性能监控分析及通过nmon_analyse生成分析报表

    nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形.输出文件采用电子表格的格式 (.csv). 性能介绍 ...

  6. SDE ST_Geometry SQL st_intersects查询很慢的解决方法

    环境:服务端 SDE 10.0 oracle 11.2,客户端 PLSQL 11,oracle 11.2 为了调试方便,以下测试都是把sql提取出来在PLSQL上做 需求是已知一个多边形的点坐标,要在 ...

  7. 通过SQL直接插入、修改ArcGIS SDE空间表中的数据

    基于Arcgis Server 10.1 +Oracle 11g环境测试 ArcGIS SDE ? 1 2 INSERT INTO CAMERA_INFO(OBJECTID,ID,SHAPE)     ...

  8. C# : 连接SDE空间数据库时出错

    1.SDE认证问题:使用ArcGIS.KeyGen.exe生成一个epp文件方法:-->server-->All-->拷贝并保存为*.epp文件.认证时加载该文件即可认证完毕.2.实 ...

  9. ArcSDE空间数据库中SDE用户使用探讨(转)

    ArcSDE作为空间数据库解决方案,应用非常广泛,本短文将尝试描述SDE的工作机制,简要说明空间数据 库中SDE用户的使用方法. ArcSDE如何工作 ArcSDE属于中间件技术,其本身并不能够存储空 ...

随机推荐

  1. Oracle数据库数据显示乱码问题解决方法。

    一.问题描述:       在将其它数据库的数据导出文件导入本地新建数据库时,所导入的数据全部是乱码,一般表现为数据表中列的值类似于"?????",即内容大部分为?的表现形式.初步 ...

  2. (转)金蝶KIS迷你版、标准版在查询数量金额明细账时提示“发生未知错误,系统当前操作被取消,请与金蝶公司联系”

    金蝶KIS迷你版.标准版在查询数量金额明细账时提示“发生未知错误,系统当前操作被取消,请与金蝶公司联系” 2013-07-10 12:17:51|  分类: 金蝶专题|举报|字号 订阅       金 ...

  3. Git——github基本操作

    基本概念 上一篇文章写到git共享仓库,但是有个局限性,就是这个仓库存在于本地,其他人无法从我们这个仓库拿到共享的内容 但是我们可以将这个共享仓库放入一个远程的服务器上,然后设置一些登录权限就能完美的 ...

  4. Spartan6系列之Spartan6系列之芯片时钟资源深入详解

    1.   时钟资源概述 时钟设施提供了一系列的低电容.低抖动的互联线,这些互联线非常适合于传输高频信号.最大量减小时钟抖动.这些连线资源可以和DCM.PLL等实现连接. 每一种Spartan-6芯片提 ...

  5. ERwin 正向工程

    1.物理模型带字段备注 COMMENT ON 将模型切换至 physical 模式选择 Model ---> Domain Dictionary , 在 tab 标签中,切换至comment 然 ...

  6. 【OpenCV】像素操作的数字图像处理

    之前几天捣鼓matlab,用来处理数字图像,矩阵操作什么的,如果忘记线性代数就真的GG了. 在用了matlab被深深地吐槽之后,决定改用opencv,C++貌似也是处理数字图像的很好的工具 1. 在u ...

  7. R语言学习 - 线图绘制

    线图是反映趋势变化的一种方式,其输入数据一般也是一个矩阵. 单线图 假设有这么一个矩阵,第一列为转录起始位点及其上下游5 kb的区域,第二列为H3K27ac修饰在这些区域的丰度,想绘制一张线图展示. ...

  8. getBlockTable delete pline

    AcDbBlockTable *pBlkTab; Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase() ...

  9. HTML `capture` 属性

    file 类型的 <input> 除了调起系统的文件选择框外,还可通过指定 capture 属性来现场拍照或录制.配合 accept 属性,可实现更加便捷的文件获取. 比如想要录制一段视频 ...

  10. ES6字符串模板

    这里做个简单的拓展,之前做vue组件时,经常用到拼接字符串,换行时用到\,既费时又麻烦.这里介绍个ES6字符串模板方法 旧版拼接(各种换行拼接) Vue.component('obj-prop',{ ...