Методы доступа и наборы строк
Обновлен: Ноябрь 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. Групповой набор строк может загрузить дескриптор нескольких строк. Массивный набор строк — тот, к которому можно получить доступ, пользуясь синтаксисом массива.
На следующем рисунке показаны типы наборов строк.
Классы набора строк
Набор строк схемы не предоставляет доступа к хранилищу данных, а предоставляет информацию о хранилище данных, — метаданные. Наборы строк схемы обычно используются в ситуациях, когда структура базы данных неизвестна на момент компиляции и должна быть получена во время выполнения.