Шаблоны поставщика OLE DB (С++)
OLE DB является важной частью стратегии универсального доступа к данным Майкрософт. Конструкция OLE DB обеспечивает высокопроизводительный доступ к данным из любого источника данных. Любые табличные данные можно просматривать с помощью OLE DB независимо от того, поступил ли он из базы данных. Гибкость дает вам огромную мощность.
Как описано в разделе "Потребители и поставщики OLE DB", OLE DB использует концепцию потребителей и поставщиков. Потребитель запрашивает данные; поставщик возвращает данные в табличном формате потребителю. С точки зрения программирования, наиболее важным последствием этой модели является то, что поставщик должен реализовать любой вызов, который может сделать потребитель.
Что такое поставщик?
Поставщик OLE DB — это набор COM-объектов, обслуживающих вызовы интерфейса из объекта-получателя, передавая данные в табличном формате из устойчивого источника (называемого хранилищем данных) потребителю.
Поставщики могут быть простыми или сложными. Поставщик может поддерживать минимальный объем функциональных возможностей или полный поставщик качества производства, реализуя дополнительные интерфейсы. Поставщик может возвращать таблицу, разрешать клиенту определять формат этой таблицы и выполнять операции с данными.
Каждый поставщик реализует стандартный набор COM-объектов для обработки запросов от клиента с стандартным значением, что любой потребитель OLE DB может получить доступ к данным от любого поставщика независимо от языка (например, C++ и Basic).
Каждый com-объект содержит несколько интерфейсов, некоторые из которых обязательны и некоторые из которых являются необязательными. Реализуя обязательные интерфейсы, поставщик гарантирует минимальный уровень функциональности (называемого соответствием), который должен использовать любой клиент. Поставщик может реализовать необязательные интерфейсы для предоставления дополнительных функциональных возможностей. Архитектура шаблона поставщика OLE DB подробно описывает эти интерфейсы. Клиент всегда должен вызывать QueryInterface
, чтобы определить, поддерживает ли поставщик заданный интерфейс.
Поддержка уровня спецификации OLE DB
Шаблоны поставщиков OLE DB поддерживают спецификацию OLE DB версии 2.7. С помощью шаблонов поставщиков OLE DB можно реализовать поставщика уровня 0. Пример Provider
, например, использует шаблоны для реализации сервера команд, отличного от SQL (MS-DOS), который выполняет команду DOS DIR для запроса файловой системы. В Provider
примере возвращаются сведения о каталоге в наборе строк, который является стандартным механизмом OLE DB для возврата табличных данных.
Самый простой тип поставщика, поддерживаемый шаблонами OLE DB, — это поставщик только для чтения без команд. Поставщики с командами также поддерживаются, так как функции закладок и чтения и записи. Вы можете реализовать поставщик чтения и записи, написав дополнительный код. Динамические наборы строк и транзакции не поддерживаются текущей версией, но их можно добавить, если вы хотите.
Когда нужно создать поставщик OLE DB?
Вам не всегда нужно создать собственный поставщик; Корпорация Майкрософт предоставляет несколько предварительно подготовленных, стандартных поставщиков в диалоговом окне "Свойства канала данных" в Visual C++. Основной причиной создания поставщика OLE DB является использование стратегии универсального доступа к данным. Ниже приведены некоторые преимущества.
Доступ к данным через любой язык, например C++, Basic и Visual Basic Scripting Edition. Это позволяет разным программистам в организации получать доступ к тем же данным таким же образом, независимо от того, какой язык они используют.
Откройте данные для других источников данных, таких как SQL Server, Excel и Access. Это может быть полезно, если вы хотите передать данные между различными форматами.
Участие в операциях между источниками данных (разнородными) Это может быть эффективный способ хранения данных. С помощью поставщиков OLE DB можно хранить данные в собственном формате и по-прежнему иметь доступ к нему в простой операции.
Добавление дополнительных функций в данные, например обработка запросов.
Повышение производительности доступа к данным путем управления тем, как он управляется.
Повышение надежности. Если у вас есть собственный формат данных, к которому может получить доступ только один программист, вы рискуете. С помощью поставщиков OLE DB вы можете открыть этот собственный формат для всех программистов.
Поставщики только для чтения и обновления
Поставщики могут значительно отличаться в сложности и функциональности. Рекомендуется классифицировать поставщиков на поставщики только для чтения и обновляемые поставщики:
- Visual C++ 6.0 поддерживает только поставщиков только для чтения. Создание поставщика OLE DB описывает создание поставщика только для чтения.
- Visual C++ поддерживает обновляемых поставщиков, которые могут обновлять (записывать в) хранилище данных. Дополнительные сведения о обновляемых поставщиках см. в разделе "Создание обновляемого поставщика". Пример UpdatePV является примером обновляемого поставщика.
Дополнительные сведения см. в разделе:
См. также
Доступ к данным
Документация по OLE DB SDK
справочник программиста OLE DB