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


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

Обновлен: Ноябрь 2007

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

Типы методов доступа

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

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

Классы методов доступа
Типы методов доступа

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

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

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

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

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

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

Тип метода доступа

Динамический

Обрабатывает параметры

Буфер

Несколько методов доступа

CAccessor

Нет

Да

Пользователь

Да

CDynamicAccessor

Да

Нет

Шаблоны OLE DB

Нет

CDynamicParameterAccessor

Да

Да

Шаблоны OLE DB

Нет

CDynamicStringAccessor[A,W]

Да

Нет

Шаблоны OLE DB

Нет

CManualAccessor

Да

Да

Пользователь

Да

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

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

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

Классы набора строк
График RowsetType

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

См. также

Основные понятия

Шаблоны потребителей OLE DB (C++)