Поделиться через


Однонаправленные курсоры

Область применения: Access 2013, Office 2013

Типичный тип курсора по умолчанию, называемый курсором только вперед (или не прокручиваемым), может перемещаться только вперед по результирующем набору. Курсор только вперед не поддерживает прокрутку (возможность перемещения вперед и назад в результирующем наборе); он поддерживает только получение строк от начала до конца результирующих наборов. При использовании некоторых курсоров только для пересылки (например, с библиотекой курсоров SQL Server) все инструкции вставки, обновления и удаления, сделанные текущим пользователем (или зафиксированные другими пользователями), которые влияют на строки в результирующем наборе, отображаются при выборке строк. Тем не менее, поскольку курсор не может быть прокручен назад, изменения, внесенные в строки в базе данных после извлечения строки, не видны через курсор.

После обработки данных для текущей строки курсор только для пересылки освобождает ресурсы, которые использовались для хранения данных. Курсоры, доступные только для пересылки, по умолчанию являются динамическими, что означает, что все изменения обнаруживаются при обработке текущей строки. Это обеспечивает более быстрое открытие курсора и позволяет результирующий набор отображать обновления, внесенные в базовые таблицы.

Хотя курсоры только вперед не поддерживают обратную прокрутку, приложение может вернуться к началу результирующих наборов, закрыв и повторно открыв курсор. Это эффективный способ работы с небольшими объемами данных. В качестве альтернативы приложение может считывать результирующий набор один раз, кэшировать данные локально, а затем просматривать локальный кэш данных.

Если приложению не требуется прокрутка результирующих наборов, курсор только вперед — лучший способ быстрого получения данных с минимальным объемом накладных расходов. Используйте adOpenForwardOnlyCursorTypeEnum , чтобы указать, что вы хотите использовать курсор только вперед в ADO.