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


Методы доступа и наборы строк

Чтобы задать и извлечь данные, шаблоны OLE DB используют метод доступа и набор строк через класс CAccessorRowset . Этот класс может обрабатывать несколько методов доступа различных типов.

Типы доступа

Все методы доступа являются производными от CAccessorBase. CAccessorBase предоставляет привязку параметров и столбцов.

На следующем рисунке показаны типы методов доступа.

Схема, показывая связи между типами Accessor.
Классы accessor

  • CAccessor использует этот метод доступа, если вы знаете структуру источника базы данных во время разработки. CAccessor статически привязывает запись базы данных, содержащую буфер, к источнику данных.

  • CDynamicAccessor используйте этот метод доступа, если не знаете структуру базы данных во время разработки. CDynamicAccessor вызовы IColumnsInfo::GetColumnInfo для получения сведений о столбце базы данных. Он создает и управляет методом доступа и буфером.

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

  • CDynamicStringAccessor, CDynamicStringAccessorA и CDynamicStringAccessorW используют эти классы, если у вас нет знаний о схеме базы данных. CDynamicStringAccessorA извлекает данные в виде строк ANSI; CDynamicStringAccessorW извлекает данные в виде строк Юникода.

  • CManualAccessor With this class, вы можете использовать любые типы данных, если поставщик может преобразовать тип. Он обрабатывает как столбцы результатов, так и параметры команды.

В следующей таблице приведены сведения о поддержке типов доступа к шаблонам OLE DB.

Тип метода доступа Динамический Обрабатывает парамы Buffer Несколько методов доступа
CAccessor No Да User Да
CDynamicAccessor Да Нет Шаблоны OLE DB No
CDynamicParameterAccessor Да Да Шаблоны OLE DB No
CDynamicStringAccessor[A,W] Да Нет Шаблоны OLE DB No
CManualAccessor Да Да User Да

Типы наборов строк

Шаблоны OLE DB поддерживают три типа наборов строк (см. предыдущий рисунок): отдельные наборы строк (реализованы CRowset), массовые наборы строк (реализованы CBulkRowset) и наборы строк массива (реализованы CArrayRowset). При вызове однострочные наборы строк извлекает один дескриптор MoveNext строк. Массовые наборы строк могут получать несколько дескрипторов строк. Наборы строк массива — это наборы строк, к которым можно получить доступ с помощью синтаксиса массива.

На следующем рисунке показаны типы наборов строк.

Схема, показывая связи между типами наборов строк.
Классы набора строк

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

См. также

Шаблоны объекта-получателя OLE DB