Fournisseur OLE DB pour Exchange

Le fournisseur Microsoft OLE DB pour Exchange présente des données stockées dans Microsoft Exchange 2000 Web Store dans un format tabulaire. Ces données peuvent être interrogées à l'aide d'un langage de type SQL, similaire au sous-ensemble SQL pris en charge par le fournisseur OLE DB pour le service d'indexation Microsoft.

Microsoft SQL Server propose des requêtes distribuées qui peuvent être utilisées pour interroger des données à partir de Exchange Web Store par le biais de ce fournisseur OLE DB et jointes à des tables dans SQL Server. Exchange Web Store doit se trouver sur le même ordinateur que SQL Server. Il est impossible d'accéder à des instances de Web Store présentes sur d'autres ordinateurs à l'aide du fournisseur OLE DB pour Exchange.

Le fournisseur OLE DB pour Exchange est disponible en tant que composant de Microsoft Exchange 2000.

Pour créer un serveur lié avec Exchange Web Store

  • Utilisez 'exoledb.DataSource.1' en tant qu'argument provider_name et l'URL correspondant au dossier racine de Web Store en tant qu'argument data_source de la procédure stockée du système sp_addlinkedserver.

    EXEC sp_addlinkedserver 'exchange', 
    'Exchange OLE DB provider', 
    'exoledb.DataSource.1',
    'file:\\.\backofficestorage\localhost\public folders'
    
  • Pour les connexions authentifiées Windows, aucun mappage de connexions n'est nécessaire. SQL Server emprunte l'identité des connexions lors de la connexion au fournisseur OLE DB pour Exchange. Pour les connexions SQL authentifiées, configurez des mappages de connexions en fournissant le nom d'utilisateur et le mot de passe comme il est requis.

Les restrictions suivantes s'appliquent lors de l'interrogation de données provenant du fournisseur OLE DB pour Exchange :

  • Seules les requêtes directes sont prises en charge. Les noms en quatre parties ne peuvent être utilisés avec le fournisseur OLE DB Exchange.

  • Toutes les colonnes de caractères du fournisseur OLE DB pour Exchange sont exposées à SQL Server en tant que colonnes de type ntext. Pour effectuer des comparaisons entre ces colonnes, elles doivent être converties de manière explicite en colonnes de type nvarchar à l'aide de la fonction CONVERT.

  • Les colonnes à valeurs multiples du fournisseur Exchange avec OLE DB DBTYPE DBTYPE_VECTOR ne sont pas prises en charge à partir des requêtes distribuées SQL Server.

Pour accéder à des données dans Exchange Web Store à partir de SQL Server, via un serveur lié établi comme ci-dessus

  • Créez des vues qui extraient les propriétés requises en tant que colonnes à partir du dossier Web Store en question. La définition de la vue convertit les colonnes de chaînes en colonnes de type nvarchar afin de pouvoir les filtrer par le biais de conditions dans la clause WHERE.

    Par exemple, supposons que Web Store contient un dossier nommé Contacts qui renferme une liste de contacts. Le script suivant crée une vue du dossier Contacts tout en extrayant le prénom du contact, son nom, le nom de son entreprise et la date de naissance du contact.

    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''')
    

    Dorénavant, les vues peuvent être interrogées et jointes à des tables SQL Server locales telles que des tables normales. La vue Contacts, par exemple, peut être jointe à une table Suppliers locale des fournisseurs pour déterminer les informations relatives aux contacts pour la liste des entreprises des fournisseurs.

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

Pour plus d'informations sur le langage SQL pris en charge par le fournisseur OLE DB Exchange, reportez-vous à la documentation de Microsoft Exchange 2000.