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


Поставщик OLE DB для Exchange

Поставщик Microsoft OLE DB для Exchange представляет данные, хранящиеся в веб-хранилище Microsoft Exchange 2000, в табличной форме. Запрос к этим данным может выполняться при помощи SQL-подобного языка, похожего на подмножество языка SQL, которое поддерживается поставщиком OLE DB для службы Microsoft Indexing Service.

Microsoft SQL Server позволяет выполнять распределенные запросы для получения данных из веб-хранилища Exchange при помощи поставщика OLE DB и соединения их в таблицах SQL Server. Веб-хранилище Exchange должно находиться на том же компьютере, что и SQL Server. Доступ в веб-хранилищам, расположенным на других компьютерах, при помощи поставщика OLE DB для Exchange не производится.

Поставщик OLE DB для Exchange входит в состав Microsoft Exchange 2000.

Создание связанного сервера по отношению к веб-хранилищу Exchange

  • Укажите 'exoledb.DataSource.1' в качестве аргумента provider_name, а URL-адрес, соответствующий корневой папке веб-хранилища, в качестве аргумента data_source для системной хранимой процедуры sp_addlinkedserver:

    EXEC sp_addlinkedserver 'exchange', 
    'Exchange OLE DB provider', 
    'exoledb.DataSource.1',
    'file:\\.\backofficestorage\localhost\public folders'
    
  • Для имен входа, прошедших проверку подлинности Windows, выполнение установления соответствия учетных записей не требуется. SQL Server олицетворяет имя входа, когда производит подключение к поставщику OLE DB для Exchange. Для имен входа, прошедших проверку подлинности сервера SQL Server, настройте соответствие учетной записи, указав при необходимости имя пользователя и пароль.

При запросе данных от поставщика OLE DB для Exchange действуют следующие ограничения.

  • Поддерживаются только передаваемые запросы. При обращении к поставщику Exchange OLE DB не могут использоваться имена из четырех элементов.

  • Все символьные столбцы из поставщика OLE DB для Exchange SQL Server представляет как столбцы типа ntext. При выполнении операций сравнения с этими столбцами они должны быть явно преобразованы в тип данных nvarchar функцией CONVERT.

  • Многозначные столбцы от поставщика веб-хранилища Exchange, имеющие OLE DB-тип DBTYPE_VECTOR, не поддерживаются в распределенных запросах SQL Server.

Доступ к данным веб-хранилища Exchange из SQL Server при использовании ранее настроенного связанного сервера

  • Создайте представления, получающие необходимые свойства из нужной папки веб-хранилища в виде столбцов. Определение представления преобразует строковые столбцы в тип данных nvarchar, так что они могут быть отфильтрованы по условиям, заданным в предложении WHERE.

    Например, пусть веб-хранилище содержит папку Contacts, в которой содержится список контактов. Следующий сценарий создает для папки Contacts представление и получает имя, фамилию, дату рождения и название компании для каждого из контактов.

    CREATE VIEW Contacts
    AS
    SELECT convert(nvarchar(30),"urn:schemas:contacts:sn") LastName,
    Convert(nvarchar(30),"urn:schemas:contacts:givenname") 
    FirstName,
       Convert(nvarchar(30), "urn:schemas:contacts:o") Company,
       Convert(nvarchar(50), "urn:schemas:contacts:email1") Email,
       "urn:schemas:contacts:bday" BirthDay
    FROM OpenQuery(Exchange, 
      'SELECT "urn:schemas:contact:sn", 
              "urn:schema:contacts:givenname", 
              "urn:schemas:contacts:o",
           "urn:schemas:contacts:email1",
           "urn:schemas:contacts:bday"
       FROM ''.\contacts''')
    

    Теперь эти представления могут запрашиваться или соединяться с локальными таблицами SQL Server точно так же, как и с обычными таблицами. Например, представление Contacts может быть соединено с локальной таблицей Suppliers, чтобы получить контактную информацию для списка компаний-поставщиков.

    SELECT FirstName, LastName, Email, Company
    FROM    Suppliers S, Contacts C
    WHERE S.Company = C.CompanyName
    

Сведения о языке SQL, поддерживаемом поставщиком Exchange OLE DB, приведены в документации по Microsoft Exchange 2000.