Методы доступа и наборы строк
Чтобы задать и извлечь данные, шаблоны OLE DB используют метод доступа и набор строк через класс CAccessorRowset . Этот класс может обрабатывать несколько методов доступа различных типов.
Типы доступа
Все методы доступа являются производными от CAccessorBase. CAccessorBase
предоставляет привязку параметров и столбцов.
На следующем рисунке показаны типы методов доступа.
Классы 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
строк. Массовые наборы строк могут получать несколько дескрипторов строк. Наборы строк массива — это наборы строк, к которым можно получить доступ с помощью синтаксиса массива.
На следующем рисунке показаны типы наборов строк.
Классы набора строк
Наборы строк схемы не обращаются к данным в хранилище данных, а вместо этого получают доступ к сведениям о хранилище данных, называемом метаданными. Наборы строк схемы обычно используются в ситуациях, когда структура базы данных не известна во время компиляции и должна быть получена во время выполнения.