Обзор службы курсоров Майкрософт для OLE DB
Служба курсоров Майкрософт для OLE DB дополняет функции поддержки курсоров поставщиков данных. В результате пользователь воспринимает относительно единообразные функциональные возможности всех поставщиков данных.
Служба курсоров предоставляет динамические свойства и улучшает поведение определенных методов. Например, динамическое свойство Optimize позволяет создавать временные индексы для упрощения определенных операций, таких как метод Find.
Служба курсоров обеспечивает поддержку пакетного обновления во всех случаях. Он также имитирует более способные типы курсоров, такие как динамические курсоры, когда поставщик данных может предоставлять только менее способные курсоры, например статические курсоры.
Ключевое слово
Чтобы вызвать этот компонент службы, задайте для свойства набора записей или объекта Connection объекта CursorLocation значение adUseClient.
connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient
Динамические свойства
При вызове службы курсора для OLE DB в коллекцию свойств объекта набора записей добавляются следующие динамические свойства . Полный список динамических свойств объекта Connection и Recordset в индекс динамических свойств ADO. Связанные имена свойств OLE DB, в которых это необходимо, включаются в скобки после имени свойства ADO.
Изменения некоторых динамических свойств не отображаются в базовом источнике данных после вызова службы курсоров. Например, установка свойства Command Time out в наборе записей не видна базовому поставщику данных.
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) | Указывает текст команды, используемой для повторной синхронизации одной или нескольких строк в нескольких соединениях таблицы. |
Оптимизировать | Указывает, следует ли создать индекс. Если задано значение True, авторизует временное создание индексов для улучшения выполнения определенных операций. |
Изменить Имя | Указывает имя набора записей . Можно ссылаться в текущих или последующих командах формирования данных. |
команда resync | Указывает настраиваемую командную строку, используемую методом resync Resync, когда свойство Unique Table действует. |
уникальный каталог | Указывает имя базы данных, содержащей таблицу, указанную в свойстве Unique Table. |
Уникальной Схемы | Указывает имя владельца таблицы, указанной в свойстве Unique Table. |
уникальная таблица | Указывает имя одной таблицы в наборе записей , созданной из нескольких таблиц, которые могут быть изменены вставками, обновлениями или удалениями. |
Критерии обновления (DBPROP_ADC_UPDATECRITERIA) | Указывает, какие поля в предложении WHERE используются для обработки конфликтов, происходящих во время обновления. |
обновление повторной синхронизации (DBPROP_ADC_UPDATERESYNC) | Указывает, вызывается ли метод Resync неявно после метода UpdateBatch и его поведение, когда свойство уникальной таблицы действует. |
Вы также можете задать или получить динамическое свойство, указав его имя в качестве индекса коллекции свойств свойств. Например, получите и распечатайте текущее значение динамического свойства Optimize, а затем задайте новое значение следующим образом:
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
Встроенное поведение свойств
Служба курсоров для OLE DB также влияет на поведение определенных встроенных свойств.
Имя свойства | Описание |
---|---|
CursorType | Дополняет типы курсоров, доступных для набора записей . |
ТипБлокировки | Дополняет типы блокировок, доступных для набора записей . Включает пакетные обновления. |
сорт | Задает одно или несколько имен полей, по которым отсортирован набор записей , и указывает порядок сортировки для каждого поля — по возрастанию или убыванию. |
Поведение метода
Служба курсоров для OLE DB включает или влияет на поведение метода Append объекта Field, и методов Open, Resync, UpdateBatchи Save объекта Recordset.