Provider OLE DB per Exchange
Il provider Microsoft OLE DB per Exchange espone in formato tabulare i dati archiviati in un archivio Web di Microsoft Exchange 2000. È possibile eseguire query su tali dati tramite un linguaggio simile al subset di SQL supportato dal provider OLE DB per il Servizio di indicizzazione Microsoft.
Le query distribuite di Microsoft SQL Server possono essere utilizzate per eseguire query sui dati dall'archivio Web di Exchange tramite tale provider OLE DB e possono essere unite alle tabelle in SQL Server. È necessario che l'archivio Web di Exchange si trovi nello stesso computer in cui è installato SQL Server. Non è possibile accedere agli archivi Web di altri computer tramite il provider OLE DB per Exchange.
Il provider OLE DB per Exchange è disponibile nell'ambito di Microsoft Exchange 2000.
Per creare un server collegato per l'archivio Web di Exchange
Utilizzare 'exoledb.DataSource.1' come argomento provider_name e l'URL corrispondente alla cartella radice dell'archivio Web come argomento data_source della stored procedure di sistema sp_addlinkedserver:
EXEC sp_addlinkedserver 'exchange', 'Exchange OLE DB provider', 'exoledb.DataSource.1', 'file:\\.\backofficestorage\localhost\public folders'
Nel caso di account di accesso con autenticazione di Windows, non sono necessari relativi mapping. Gli account di accesso vengono rappresentati da SQL Server durante la connessione al provider OLE DB per Exchange. Nel caso di account di accesso con autenticazione di SQL Server, è necessario impostare i relativi mapping specificando il nome utente e la password.
Quando si eseguono query sui dati dal provider OLE DB per Exchange, vengono applicate le limitazioni seguenti:
Sono supportate solo query pass-through. Non è consentito utilizzare nomi in quattro parti per tale provider.
Tutte le colonne di tipo carattere del provider OLE DB per Exchange vengono esposte a SQL Server come colonne ntext. Per eseguire confronti tra queste colonne, è necessario convertirle in modo esplicito nel tipo nvarchar tramite la funzione CONVERT.
Le query distribuite di SQL Server non supportano le colonne multivalore del provider per Exchange con OLE DB DBTYPE DBTYPE_VECTOR.
Per accedere ai dati dell'archivio Web di Exchange da SQL Server tramite un server collegato indicato in precedenza
È possibile creare viste che recuperano le proprietà necessarie nel formato di colonne dalla cartella dell'archivio Web desiderata. In base alla definizione della vista, le colonne di tipo stringa vengono convertite nel tipo nvarchar in modo che sia possibile filtrarle tramite le condizioni della clausola WHERE.
Si supponga ad esempio che l'archivio Web includa la cartella Contacts contenente un elenco di contatti. Lo script seguente crea una vista in base alla cartella Contacts e recupera il nome, il cognome, il nome dell'azienda e la data di nascita di ogni contatto.
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''')
A questo punto, è possibile eseguire query nelle viste e unire in join le viste alle tabelle locali di SQL Server come tabelle normali. Ad esempio, per ottenere informazioni sui contatti relative all'elenco di fornitori, è possibile unire in join la vista Contacts alla tabella locale Suppliers.
SELECT FirstName, LastName, Email, Company FROM Suppliers S, Contacts C WHERE S.Company = C.CompanyName
Per informazioni sul linguaggio SQL supportato dal provider OLE DB per Exchange, vedere la documentazione di Microsoft Exchange 2000.