Курсоры OLE DB (SQL Server Compact)

MicrosoftSQL Server Compact 4.0 поддерживает курсоры следующих типов: базовой таблицы, с движением только вперед и прокручиваемые. При использовании любого из этих курсоров в клиенте может быть открыта только одна строка.

Курсор базовой таблицы

Курсор базовой таблицы создается быстрее других поддерживаемых курсоров и напрямую взаимодействует с ядром хранилища данных. Этот курсор поддерживает обновления, закладки, индексы и методы Seek и SetRange интерфейса IRowsetIndex. Курсор базовой таблицы может поддерживать режим отложенного обновления, отображая интерфейс IRowsetUpdate, когда для свойства DBPROP_IRowsetUpdate передается значение TRUE. У этого курсора динамическое членство; для свойств DBPROP_OTHERINSERT и DBPROP_OTHERUPDATEDELETE задано значение TRUE.

Курсоры базовых таблиц открывают с помощью метода IOpenRowset::OpenRowset. Применение функции «SELECT * FROM таблица» возвращает курсор обработчика запросов, с движением только вперед или прокручиваемый, но не курсор базовой таблицы. Только курсоры базовых таблиц поддерживают обновления.

Курсор с движением только вперед

Доступный только для чтения курсор с движением только вперед по быстродействию занимает первое место среди курсоров обработчика запросов и второе — среди всех поддерживаемых курсоров, однако у него самый ограниченный набор функций. Он не поддерживает закладки и обновления.

Прокручиваемый курсор

Доступный только для чтения прокручиваемый курсор — это самый функциональный курсор обработчика запросов. Результирующий набор этого курсора кэшируется, что обеспечивает быстрые перезапуски курсора, но требует больше ресурсов, особенно при обработке запросов с большими результирующими наборами. Поскольку результаты кэшируются, изменения в базовых таблицах, по которым исполнялся запрос, не будут отображаться в результатах запроса, если этот запрос не исполнить заново.

Обязательные параметры настройки свойств

В таблице приведены обязательные параметры настройки свойств для каждого типа курсора.

Параметр настройки свойства

Базовой таблицы

Только вперед

Прокручиваемый

DBPROP_BOOKMARKS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_OWNUPDATEDDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OWNINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERUPDATEDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_CANFETCHBACKWARDS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_QUICKRESTART

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE