Cursor:存储在内存中的来自于一个Table或者featureclass的记录集合。Cursor对象允许在一个单个对象中管理记录集,单个移动对象,不允许返回以前的位置。NextRow,NextFeature方法第一次调用时,实际指向第一条记录,之后每一次调用都是指向下一条记录。使用Newrow 或 NewFeature将返回nothing,指示目前已经在Cursor的末尾。
Cursor VS FeatureCursor
Cursor:
用于操作Table(存储在传统数据库中的记录子集),Table对象用于产生一个Cursor类的实例;
FeatureCursor:
用于操作FeatureClass(地理数据集:shapefile,personal geodatabase,enterprise geodatabase)
FeatureClass对象用于产生一个FeatureCursor类的实例.
其它的区分:QueryFilter VS SpatialFilter
QueryFilter 和 SpatialFilter都是组件类。QueryFilter 用于属性查询,可以在内存中产生用于限制记录子集的对象。SpatialFilter是空间查询。空间查询只能用于FeatureClass,它是一种QueryFilter ,可以访问其所有的属性和方法,因而可以使用QueryFilter 的whereClass属性来绑定空间的属性限制。
1 ISpatialFilter pSpatialFilter = new SpatialFilterClass();
2 pSpatialFilter.Geometry = pFloodPolygon;
3 pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
4 pSpatialFilter.WhereClause = "Prop_val>1000000";
5 pFCursor = pFLayer.Search(pSpatialFilter, true);