ArcEngine中featurecursor分别在sde数据库和gdb数据库下的遍历问题

问题描述

 //一般的循环遍历步骤
 IFeatureCursor featureCursor = featureClass.Search(null,false);
 IFeature feature = null;
 while((feature = featureCursor.NextFeature())!=null)
 {
 }

以上是常用的循环遍历的步骤,最后遍历到feature为null后退出while循环,这时如果再执行一次featureCursor.NextFeature()语句:
1.在gdb和mdb数据库下会得到null;
2.在sde数据库下会得到“调用的函数顺序有误 [Function called out of sequence]”的报错。

原文地址:https://www.cnblogs.com/lLazy/p/10662194.html

时间: 2024-10-09 03:19:43

ArcEngine中featurecursor分别在sde数据库和gdb数据库下的遍历问题的相关文章

ArcEngine中打开各种数据源(WorkSpace)的连接

(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业数据库需要使用SDE来管理,所以需要使用SDE的Workspace来表示连接.在AE接口中,Workspace是由Factory打开的.代码如下: // //准备连接参数 ESRI.ArcGIS.esriSystem.IPropertySet pPropSet=new PropertySetClas

C#+ArcEngine中com对象的释放问题

1.问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题"超出系统资源"和"超出打开游标最大数":在网上看了一些资料,发现都是说在循环中没有释放已经使用过的对象,但是在循环中实际上是有为com对象赋值为null的,但是还是没法解决.后来想着将对象赋值为null和marshal是不是效果不一样,就特意写了一个简单的循环来测试,代码如下(初级代码,比较乱,请轻喷): 1 public void Test_释放游标方式() 2 { 3 string s

在oracle中重建新数据库后如何切换之前数据库,多个数据库之间如何切换

通过这个软件,创建一个SQLSERVER的数据库,之前的数据库一直是ORCL,即sqlplus system/orcl 后 NAME --------- ORCL 这样,但创建完新的数据库后长这样如下: 现在使用的PL/SQL DEVELOPER是可以两个数据库ORCL,和SQLSERVER都可以链接 希望让控制台从SQLSERVER的链接中回到ORCL的数据库的链接中 没想到今天运气好居然快速成功找回,折磨n天的问题终于找回 SET ORACLE_SID = SID名称即 SET ORACLE

在ArcEngine中使用Geoprocessing工具-执行工具

转自原文在ArcEngine中使用Geoprocessing工具-执行工具 来解析一下Geoprocessor类的Execute方法,他有两种重载,Execute(IGPProcess, ITrackCancel)和Execute(string, IVariantArray, ITrackCancel). Execute(IGPProcess, ITrackCancel) IGProcess是所有Geoprocessor工具类都实现了的接口,通过ITrackCancel接口能够处理用户发出的取消

在access中如何创建数据库?你认为数据库在网站开发中所扮演的角色是什么?使用数据库和使用文件,两者的优缺点是是什么?

1.启动ACCESS建空数据库,给数据库取名"数据库名".2.建一个表,如果有excel数据可直接导入或在设计视图里面建表,如段名分别为:学号.姓名.性别.出生日期.家庭住址等.给表取名"表名".3.用数据表做数据源,建立需要的查询.一个简单的数据库就建成了.我认为数据库在网站开发中扮演者重要的角色,它掌管着大量的重要数据.它是网站开发的核心,也可以说它是一个默默无闻的工作者 数据库是用来存储数据的,其中分好多类,小型的有ACCESS,中型的有SQL SERVER,

【翻译自mos文章】rac数据库中,HC_<SID>.dat文件被其他Oracle_Home下的实例所使用。

rac数据库中,HC_<SID>.dat文件被其他Oracle_Home下的实例所使用. 参考原文: RAC database HC_<SID>.dat is used by instance of different Oracle_Home (Doc ID 1618161.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.0 and later Information in this document ap

Java -&gt; 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)

写入: private void insertFile(HttpServletRequest request, HttpServletResponse response) throws IOException { String path_member = request.getParameter("path_member"); List list = this.insert("f:/tmp001.xls", "gs_sale_members");

如何将一个数据库中的一个表复制到另一个数据库中的表中

如何将一个数据库中的一个表复制到另一个数据库中的表中 2013-09-11 17:13匿名 | 浏览 13763 次 如何将一个数据库中的一个表复制到另一个数据库中的表中两个表的列名不同.有知道的么?SQL语句直接导过去.! 2013-09-12 20:26网友采纳 热心网友 如果另一个库中没有同名的表select * into b数据库.dbo.a表 from a数据库.dbo.a表 where 条件 如果是追加到另一个表中inert into b数据库.dbo.a表select * from

java中生成流水号的一个例子(使用关系型数据库)

在实际的开发中,可能会有根据一定的规则生成流水号的需求(比如根据根据公司编码和日期生成4位流水号)我们可以把公司和日期联合起来作为一个业务编码,把这个业务编码和序列的值存储到数据库中,每次需要生成流水号的时候根据公司和日期联合起来生成的这个业务编码去数据库里边去查,若有记录的话就把记录的话就把对应的序列值返回,然后序列的值加一,若根据对应的业务编码查询不到相应的记录就把流水号对应的最小的值返回,然后在数据库中插入相应的记录 这种场景使用类似BerkeleyDB这种K,Value对数据库来实现是最