导入要素集到SDE数据库的方法以及使用GP工具的许可问题(转载)
转自:http://blog.csdn.net/lk103852503/article/details/7496850
费话不说,先上代码
public static void shpFeatureClassToGeodatabase(string inputPath,string sdePath)
{
ESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabasefeatureClassToGeodatabase =newESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabase();
featureClassToGeodatabase.Output_Geodatabase = sdePath;
featureClassToGeodatabase.Input_Features = inputPath;
featureClassToGeodatabase.Derived_Geodatabase = "";
Geoprocessorgeoprocessor =newGeoprocessor();
geoprocessor.OverwriteOutput = true;
try
{
geoprocessor.Execute(featureClassToGeodatabase, null);
string mess = null;
for(int k = 0; k < geoprocessor.MessageCount;k++)
{
mess +=geoprocessor.GetMessage(k) + "\n";
}
MessageBox.Show(mess);
}
catch(Exception ex)
{
stringmess = null;
for(int k = 0; k < geoprocessor.MessageCount;k++)
{
mess += geoprocessor.GetMessage(k) + "\n";
}
}
}
此函数的作用是将要素集导入数据库中,这里主要使用了FeatureClassToGeodatabase类,这是一个将要素集导入数据库的类,这个数据库不仅仅是SDE数据库,还包括personal geodatabase和 file geodatabase,导入不同的数据库时,参数写法不同。导入SDE数据库,这样调用该函数:
string shpPath=@"E:\Data\TestData\streetPoint.shp";
stringsdePath = @"C:\Users\Administrator\AppData\Roaming\ESRI\Desktop10.0\ArcCatalog\Connectionto localhost.sde";
//stringsdePath = @"E:\Data\TestData\New File Geodatabase.gdb";
shpFeatureClassToGeodatabase(shpPath,sdePath);
要注意的关键问题:
1. 数据库路径参数的写法
sdePath这个参数的写法十分关键,它实际指向的是SDE数据库连接文件,这个文件是在Catolog中连接数据库时自动生成的,当然也可以用代码来创建SDE数据库连接文件,并以此来连接数据库,方法如下:
IPropertySetpProSet =newPropertySet();
try
{
pProSet.SetProperty("Server","EGOVA-Likun");
pProSet.SetProperty("Instance","5152");
pProSet.SetProperty("Database","cgdb");
pProSet.SetProperty("user","sde");
pProSet.SetProperty("password","sde");
pProSet.SetProperty("version","SDE.DEFAULT");
}
catch(Exception ex)
{
stringmsg = ex.Message;
}
string path =@"C:\test";
string sdeName =@"test.sde";
string sdePath = path +"\\" + sdeName;
if (File.Exists(sdePath))
{
File.Delete(sdePath);
}
IWorkspaceFactory workspaceFactory =newSdeWorkspaceFactoryClass();
IWorkspaceName workspaceName = workspaceFactory.Create(path, sdeName,pProSet, 0);
2. 许可问题
当做好以上这些后,可能会发现导入数据不成功,错误提示如下:
ERROR 00210:Cannot create output
这里是提示不能创建输出,此时,如果在此SDE数据库中做其它的操作如创建、删除、修改时,提示这样的错误:The application is not licensed to create or modify schema for thistype of data,那么可以确定这是许可问题。解决方法如下:
打开License属性,在Products栏中勾选上ArcGIS Engine Enterprise Geodatabase,在Extension一栏中勾选Data Interoperability,这样的做的目的是要获取产品版本的许可以及扩展模块的许可,千万要注意的是在Products一栏中勾选对应的产品许可即可,不要多选。
如果用代码来设置许可,方法如下(Java代码):
com.esri.arcgis.system.AoInitializeao =new com.esri.arcgis.system.AoInitialize();
if(ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)
ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeDataInteroperability);
总结:
关于许可的问题,在使用其它的GP工具时也常会遇到,因此,当你发现所有的参数都设置无误而执行却不能成功的诡异问题时,就要检查下是不是许可在做怪了。
导入要素集到SDE数据库的方法以及使用GP工具的许可问题(转载)相关推荐
- 导入shape文件到SDE数据库
/** * pDataSet:要导出的数据库的数据集,如果直接导入到数据库而不是数据集,则使用强制转换IWorkspace-->IDataset * strFeatFileDir:要导入的sha ...
- mysql导入指定数据库_mysql命令行导入sql文件到指定数据库的方法
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 第四章: ls 有一些我们常用的参数, 比如我们要知道当前目录的所有内容, 包括隐藏文件夹和文件和所有属性, 例 [roo ...
- spark集群访问mysql_一种Spark并行访问MPP数据库的方法与流程
本发明涉及数据库 技术领域: :,具体来说,涉及一种Spark并行访问MPP数据库的方法. 背景技术: ::从关系数据库读取数据,Spark可以使用DataFrame和JdbcRDD等方法.这些方法在 ...
- 往sde中导入要素类报错000732
sde可以成功连接,可以在Server中注册. 但是向sde中导入要素类报错000732,如图所示. 点击红色圆圈提示 ERROR 000732. 将路径修改为绝对路径即可,如下图所示. 转载于:ht ...
- csv导入mysql php实现_PHP实现csv文件导入mysql数据库的方法
这篇文章主要介绍了PHP编程实现csv文件导入mysql数据库的方法,涉及php文件读取.转换.数据库的连接.插入等相关操作技巧,需要的朋友可以参考下 具体如下: config.db.php内容如下: ...
- sqlyong导出sql没有数据_sqlyog怎么导入外部数据库-sqlyog导入数据库的方法 - 河东软件园...
sqlyog是一款数据库管理工具,它并不是真正的数据库软件,但是也拥有很多相同的功能.今天小编要给大家介绍到的这个功能是大家在数据库中经常会使用到的,那就是导入外部数据库.我们在sqlyog中导入数据 ...
- php把路由放在数据库,PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法
PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法 本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下: 一.导入 导入 ...
- python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...
本文实例讲述了python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的 ...
- 如何将试卷导入到mysql中,一种基于C#中将Word试题导入数据库实现方法.doc
一种基于C#中将Word试题导入数据库实现方法 一种基于C#中将Word试题导入数据库实现方法 摘要:随着在线考试系统的不断发展,试题库建设问题也逐渐显露出来,如何让用户方便,快捷的录入试题,并能够保 ...
最新文章
- P2280 [HNOI2003]激光炸弹(二维前缀和的简单应用)难度⭐⭐⭐
- 区分真实模式的两个标准
- 20应用统计考研复试要点(part41)--概率论与数理统计
- lucene Term查询
- python程序怎么修改_详解Python文件修改的两种方式
- java改变实参_java中引用传递问题,在函数中修改引用的指向,会不会影响实参?...
- 软件测试完后,还有bug,责任全在于测试吗?
- 如何在 Ubuntu 16.10 的 Unity 8 上运行老式 Xorg 程序
- 关于计算机中的编码问题: ASC2/ Unicode/ Utf-8
- Lrc文件与音乐的同步显示
- 2011黑帽大会:由黑客操控的世界
- 【PR学习笔记】PR学习笔记之PR快捷键
- #1034 : 毁灭者问题
- 浮点型数据规范以及规格化与非规格化数据(更新:原文疑问已解)
- HTML 标签简写及全称以及HTML总结
- Android扑克牌抽奖View,android自定义层级view,扑克牌堆叠效果,cascadeLayout
- 安卓市场 android2.1.1,iLike安卓数据恢复专业版
- vue使用javascript动态创建script - 动态引入外部js文件
- 频域平滑滤波 matlab,用MATLAB实现频域平滑滤波以及图像去噪代码
- 漫看影视:圣诞节观影推荐