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


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

Для записи и извлечения данных шаблоны 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++)