/// <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. [转]T4系列文章之3:T4语法的介绍

    本文转自:http://www.cnblogs.com/damonlan/archive/2012/03/06/2382724.html 因为这段时间一直都没空,我也不知道有没有对人T4感兴趣,但不管 ...

  2. C#基础 进制转换6/17

    二进制→十进制: 计算公式:a*20+b*21+c*22+…+m*2(n-1) 公式中a为二进制数右边第一位数,b为第二位数,以此类推 例:二进制1011010转换为十进制数为 0*20+1*21+0 ...

  3. 支持多种格式的播放器js代码

    FLV需要播放器,其它视频格式直接插入相应的代码即可. ------------------------------------- /**   *视频播放 by zhensheng@   *参数说明  ...

  4. 【JAVA 学习笔记2】if使用例子

    int a =3; if (a%2==0) { System.out.println(a+" 是偶数"); System.out.println(a+" 不是奇数&quo ...

  5. 如何向expect脚本里面传递参数

    如何向expect脚本里面传递参数   比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递   ssh.exp   Python代码   # ...

  6. Android RxJava 2.0中backpressure(背压)概念的理解

    英文原文:https://github.com/ReactiveX/RxJava/wiki/Backpressure Backpressure(背压.反压力) 在rxjava中会经常遇到一种情况就是被 ...

  7. thinkphp配置设置

    thinkphp惯例文件是不可更改的,有配置设置通常在Application->Commen->Conf->config.php更改. 绑定数据库信息 //'配置项'=>'配置 ...

  8. PHP——基本使用(一)

    Apache安装与配置 install 下载地址:https://www.apachelounge.com/download/,选择2.4.33版本64位 将程序解压到一个英文目录下,以管理身份打开c ...

  9. 6.15 分解IP地址

    问题:将一个IP地址字段分解到列中,考虑下面列出的IP地址: 111.22.3.4 要得到如下所示的查询结果: +-----+----+---+---+| a   | b  | c | d |+--- ...

  10. Codeforces_766_C_(dp)

    C. Mahmoud and a Message time limit per test 2 seconds memory limit per test 256 megabytes input sta ...