Более

Как использовать вложенные циклы с курсорами?

Как использовать вложенные циклы с курсорами?


Я использую следующие вложенные циклы для чтения первого точечного объекта набора данных и остальных точек в этом наборе данных. Затем прочтите второй точечный объект в наборе данных и остальные точки в этом наборе данных и так далее. Проблема с этими вложенными циклами заключается в том, что они считывают первую точку и остальные точки только один раз. Почему так происходит?

Dim pFCursor As IFeatureCursor Set pFCursor = pFeatureClass.Search (Nothing, True) Dim pFCursor2 As IFeatureCursor Set pFCursor2 = pFeatureClass.Search (Nothing, True) Dim pFeature As IFeature Dim pFeature2 As IFFeature As IFeature Dim pFeature2 As IFFeature As IFeature As IPeature Dim pFeature2 As IFFeature As IFeature As IPeature Dim pFeature2 As IFFeature As IFeature Set pim .NextFeature Делать, пока pFeature не будет ничего не задано pPointA = pFeature.Shape MsgBox pFeature.Value (intPosFID) & "F1" Установить pFeature2 = pFCursor2.NextFeature Выполнить, пока pFeature2 не будет ничего задано pFeature2.Shape Msg F2 "Установить pFeature2 = pFCursor2.NextFeature Loop Set pFeature = pFCursor.NextFeature Loop

Объяснение закончено на интерфейсе ICursor (который реализует FeatureCursor). Тебе нужно переехатьУстановите pFCursor2 = pFeatureClass.Search (Nothing, True)в ваш первый цикл. Или установите курсор рециркуляции на false, сделайте один проход над своимpFCursor2курсор, чтобы создать коллекцию IFeature (список, словарь и т. д.), а затем выполнить итерацию по коллекции.

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/ICursor_Interface/00250000011s000000/

Курсоры идут только вперед; они не поддерживают резервное копирование и извлечение уже извлеченных строк или выполнение нескольких проходов по данным. Если приложению необходимо выполнить несколько проходов по данным, приложению необходимо повторно выполнить запрос, вернувший курсор.