『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

理解ArcObjects中的游标(1)

理解ArcObjects中的游标(1)
介绍了Arcobjects中的Cursor对象,我将它翻译出来,作为练笔,同时也是给大家介绍一下洋人是如何认识Cursor的。

       理解ArcObjects中的游标

       ——学习如何使用cursor操作要素类和表中的记录

       作者:Eric Pimpler, President, GeoSpatial Training & Consulting, LLC

       当你听到cursor这个术语的时候,你的脑海中会出现什么?它是在屏幕上显示何处将开始下一个输入活动的符号吗(就是屏幕上的鼠标)?在AO中,cursor代表了一个对要素类或表通过使用属性或空间查询而获得的记录子集。这个子集保存在内存中而不是可视化显示出来。不要将它与选择集(selection set)弄混淆。选择集对象是在ArcMap中用于显示当前被选择的要素或行记录,而cursor缺不是为了显示的目的而使用的。

       例如,一个查询cursor可以被用于编程产生一个租金表,这个表包含了所有在100中受过涝灾且其财产价值超过了10万美元的平原。AO提供了从地理数据集(要素类)和普通数据表中获取cursor的能力。这些cursor对象允许在一个单个对象中管理记录集。本文将介绍这些AO对象,方法和属性,它们都用于操作cursor对象。

       Cursor VS FeatureCursor

       AO使用何种cursor来管理记录子集取决于数据源的不同。cursorfeaturecursor是非常相似的对象,除了cursor是用于操作表,而后者用于操作要素类。换而言之,  cursor是一种为了特定目的——操作存储在传统数据库表中的记录子集——而建立的类结构,而featurecursor的记录子集则是存储在shapefile文件、个人geodatabase或企业级geodatabase中。

       Cursors类型

       在CursorFeatureCursor类群中有三种类型的cursor。最常用的是Search Cursor,它被用于查询操作以返回一个满足查询条件的记录子集。Search Cursor是一种只读的cursor,你可以用它遍历获取的信息。

       你不能使用这种游标来插入、更新或删除表中的记录。Insert Cursor是专门用于往一个表中插入一条新记录,而Update Cursor则是用于更新或删除记录,这两个cursor返回的记录可以通过一个属性或空间查询来限定。

       为了你进行的操作产生恰当类型的cursor是非常重要的。例如,不要产生一个search cursor,如果你试图更新一个表中的记录。正如前面提到的,search cursor是一种让你不能更新数据的只读结构。在本文中,我们将揭示每一种cursor的细节。

      京ICP备2025132830号-1 京公网安备 号