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


Обзор службы курсоров (Майкрософт) для OLE DB

Служба курсоров Майкрософт для OLE DB дополняет функции поддержки курсоров поставщиков данных. В результате пользователь воспринимает относительно единообразные функциональные возможности всех поставщиков данных.

Служба курсоров предоставляет динамические свойства и улучшает поведение определенных методов. Например, динамическое свойство Optimize позволяет создавать временные индексы для упрощения определенных операций, таких как метод Find .

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

Ключевое слово

Чтобы вызвать этот компонент службы, задайте для свойства Recordset или Объекта Connection свойство CursorLocationзначение adUseClient.

connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient

Динамические свойства

При вызове службы курсоров для OLE DB в коллекцию Properties объекта Recordset добавляются следующие динамические свойства. Полный список динамических свойств объекта Connection и Recordset приведен в индексе динамических свойств ADO. Связанные имена свойств OLE DB, где это уместно, включаются в круглые скобки после имени свойства ADO.

Изменения некоторых динамических свойств не видны базовому источнику данных после вызова службы курсоров. Например, задание свойства Время ожидания команд в наборе записей не будет отображаться базовому поставщику данных.


Recordset1.CursorLocation = adUseClient     'invokes cursor service
Recordset1.Open "authors", _
    "Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
    "Password=<password>;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).

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

Примечание

Динамическое свойство DBPROP_SERVERDATAONINSERT не поддерживается службой курсоров, даже если оно поддерживается базовым поставщиком данных.

Имя свойства Описание
Автоматический пересчет (DBPROP_ADC_AUTORECALC) Для наборов записей, созданных с помощью службы формирования данных, это значение указывает, как часто вычисляются вычисляемые и агрегированные столбцы. По умолчанию (value=1) выполняется пересчет всякий раз, когда служба формирования данных определяет, что значения изменились. Если значение равно 0, вычисляемые или статистические столбцы вычисляются только при первоначальном построении иерархии.
Размер пакета (DBPROP_ADC_BATCHSIZE) Указывает количество инструкций обновления, которые можно пакетировать перед отправкой в хранилище данных. Чем больше инструкций в пакете, тем меньше круговых путей к хранилищу данных.
Кэш дочерних строк (DBPROP_ADC_CACHECHILDROWS) Для наборов записей, созданных с помощью службы формирования данных, это значение указывает, хранятся ли дочерние наборы записей в кэше для последующего использования.
Версия обработчика курсоров (DBPROP_ADC_CEVER) Указывает версию используемой службы курсоров.
Сохранение состояния изменения (DBPROP_ADC_MAINTAINCHANGESTATUS) Указывает текст команды, используемой для повторной синхронизации одной или нескольких строк в соединении с несколькими таблицами.
Optimize (Оптимизация) Указывает, следует ли создать индекс. Если задано значение True, авторизует временное создание индексов для улучшения выполнения определенных операций.
Имя изменения формы Указывает имя набора записей. Можно ссылаться в текущих или последующих командах формирования данных.
Команда синхронизации Указывает настраиваемую командную строку, используемую методом Resync при действии свойства Unique Table .
Уникальный каталог Указывает имя базы данных, содержащей таблицу, на который ссылается свойство Unique Table .
Уникальная схема Указывает имя владельца таблицы, на которое ссылается свойство Unique Table .
уникальная таблица Указывает имя одной таблицы в наборе записей , созданной из нескольких таблиц, которые могут быть изменены путем вставки, обновления или удаления.
Условия обновления (DBPROP_ADC_UPDATECRITERIA) Указывает, какие поля в предложении WHERE используются для обработки конфликтов, возникающих во время обновления.
Повторная синхронизация обновлений (DBPROP_ADC_UPDATERESYNC) Указывает, вызывается ли метод Resync неявно после метода UpdateBatch (и его поведение), когда действует свойство Unique Table .

Вы также можете задать или получить динамическое свойство, указав его имя в качестве индекса для коллекции Properties . Например, получите и выведите текущее значение динамического свойства Optimize , а затем задайте новое значение следующим образом:

Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True

Встроенное поведение свойств

Служба курсоров для OLE DB также влияет на поведение некоторых встроенных свойств.

Имя свойства Описание
CursorType Дополняет типы курсоров, доступные для набора записей.
LockType Дополняет типы блокировок, доступные для набора записей. Включает пакетные обновления.
Sort Указывает одно или несколько имен полей, по которым отсортирован набор записей , и указывает, отсортировано ли каждое поле по возрастанию или убыванию.

Поведение метода

Служба курсоров для OLE DB включает или влияет на поведение метода Append объекта Field; и методы Open, Resync, UpdateBatch и Save объекта Recordset.