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


Мастер Поставщика ATL OLE DB

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

Этот мастер устанавливает класс потребителей OLE DB с привязкой данных, необходимой для доступа к указанному источнику данных при помощи заданного поставщика OLE DB.

a4w79x4f.alert_note(ru-ru,VS.90).gifПримечание.

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

  • Источник данных
    Кнопка Источник данных позволяет установить заданный источник данных, используя выбранного поставщика OLE DB. При нажатии этой кнопки появляется диалоговое окно Свойства связи с данными. Дополнительные сведения о построении строк соединения и диалогового окна Свойства связи с данными см. в разделе Общие сведения о связи с данными API документации SDK для Windows.

    a4w79x4f.alert_note(ru-ru,VS.90).gifПримечание.

    В предыдущих выпусках при нажатии кнопки Источник данных с одновременным удержанием клавиши Shift открывалось диалоговое окно "Открытие файла", в котором можно было выбрать файл канала передачи данных (UDL-файл). Эти функциональные возможности больше не поддерживаются.

    Диалоговое окно имеет четыре вкладки.

    • Вкладка Поставщик

    • Вкладка Подключение

    • Вкладка Дополнительно

    • Вкладка Все

  • Class
    После выбора источника данных в это окно вводится имя класса по умолчанию (см. далее раздел Выбор источника данных). Имя класса можно изменять.

  • H-файл
    После выбора источника данных в это окно вводится имя класса заголовка по умолчанию, на основании выбранной таблицы или процедуры (см. далее раздел Выбор источника данных). Можно редактировать имя файла заголовка или выбрать из существующих файлов заголовка.

  • Атрибутированный.
    С помощью данной настройки можно указать, будет ли мастер создавать классы потребителя с использованием атрибутов или объявлений шаблонов. При выборе этой настройки мастер использует атрибуты, а не объявления шаблонов (это — настройка по умолчанию). При отмене выбора этой настройки мастер использует объявления шаблонов, а не атрибуты.

    • Если выбран Тип потребителя таблицы, мастер использует атрибуты db_source и db_table для создания таблицы и объявлений класса метода доступа к таблице, и использует db_column для создания соответствия между столбцами, например:

      // Inject table class and table accessor class declarations
      [
          db_source("<initialization_string>"),
          db_table("dbo.Orders")
      ]
      ...
      // Column map
          [ db_column(1, status=m_dwOrderIDStatus,         length=m_dwOrderIDLength) ] LONG m_OrderID;
          [ db_column(2, status=m_dwCustomerIDStatus,         length=m_dwCustomerIDLength) ] TCHAR m_CustomerID[6];
          ...
      

      вместо использования класса шаблонов CTable для объявления таблицы и класса метода доступа к таблице, и макросы BEGIN_COLUMN_MAP и END_COLUMN_MAP для создания соответствия между столбцами, например:

      // Table accessor class
      class COrdersAccessor;
      // Table class
      class COrders : public CTable<CAccessor<COrdersAccessor> >;
      ...
      // Column map
      BEGIN_COLUMN_MAP(COrderDetailsAccessor)
          COLUMN_ENTRY_LENGTH_STATUS(1, m_OrderID,         m_dwOrderIDLength, m_dwOrderIDStatus)
          COLUMN_ENTRY_LENGTH_STATUS(2, m_CustomerID,         m_dwCustomerIDLength, m_dwCustomerIDStatus)
          ...
      END_COLUMN_MAP()
      
    • Если выбирается Тип потребителя команды, мастер использует атрибуты db_source и db_command, и использует db_column для создания соответствия между столбцами, например:

      [
          db_source("<initialization_string>"),
          db_command("SQL_command")
      ]
      ...
      // Column map using db_column is the same as for consumer type of 'table'
      

      вместо использования команды и объявлений классов доступа к команде в H-файле класса команды, например:

      Command accessor class:
      class CListOrdersAccessor;
      Command class:
      class CListOrders : public CCommand<CAccessor<CListOrdersAccessor> >;
      ...
      // Column map using BEGIN_COLUMN_MAP ... END_COLUMN_MAP is the same as
      // for consumer type of 'table'
      

    Дополнительные сведения см. в разделе Basic Mechanics of Attributes.

  • Тип
    Выберите один из этих переключателей для указания, будет класс потребителя производным от CTable или CCommand (по умолчанию).

    • Таблица
      Выберите этот параметр, если нужно использовать CTable или db_table для создания таблицы и объявлений класса метода доступа к таблице.

    • Команда
      Выберите этот параметр, если нужно использовать CCommand или db_command для создания команды и объявлений класса метода доступа к команде. Это — выбор по умолчанию.

  • Поддержка
    Эти флажки выбираются для указания видов обновления, которые должны поддерживаться в потребителе (по умолчанию ничего не поддерживается). Каждый из следующих элементов устанавливает DBPROP_IRowsetChange и соответствующие записи для DBPROP_UPDATABILITY в сопоставлении набора свойств.

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

    • Вставить
      Указывает, что потребитель поддерживает вставку строк в набор строк.

    • Удалить
      Указывает, что потребитель поддерживает удаление строк из набора строк.

См. также

Задачи

Добавление потребителя OLE DB библиотеки ATL

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

Добавление функциональных возможностей с помощью мастеров кода

Ссылки

Строки соединения и ссылки на данные (OLE DB)