OLE DB Provider for Exchange

Microsoft OLE DB Provider for Exchange 以表格 (Tabular) 的格式公開 Microsoft Exchange 2000 Web Store 中儲存的資料。這個資料可以使用近似 SQL的語言來進行查詢,這種語言與 OLE DB Provider for Microsoft Indexing Service 支援的 SQL 子集非常相似。

Microsoft SQL Server 分散式查詢可透過此 OLE DB Provider 來查詢 Exchange Web Store 中的資料,並可聯結 SQL Server 中的資料表。Exchange Web Store 應該位於與 SQL Server 相同的電腦上。位於其他電腦的 Web Stores 無法使用 OLE DB Provider for Exchange 來存取。

OLE DB Provider for Exchange 是以 Microsoft Exchange 2000 的一部份來提供。

針對 Exchange Web Store 建立連結伺服器

  • 使用 'exoledb.DataSource.1' 作為 provider_name 的引數,與 Web Store 根資料夾對應的 URL 則作為 sp_addlinkedserver 系統預存程序的 data_source 引數。

    EXEC sp_addlinkedserver 'exchange', 
    'Exchange OLE DB provider', 
    'exoledb.DataSource.1',
    'file:\\.\backofficestorage\localhost\public folders'
    
  • 就 Windows 驗證登入而言,並沒有登入對應 (Login Mapping) 的必要。當登入連接到 OLE DB Provider for Exchange 時,則由 SQL Server 來模擬登入。對於 SQL Server 驗證登入,若要設定登入對應,您必須提供使用者名稱以及密碼。

從 OLE DB Provider for Exchange 查詢資料時適用下列限制:

  • 只支援傳遞查詢 (Pass-through Query)。四個部份的名稱無法用於 Exchange OLE DB provider。

  • 所有來自 OLE DB Provider for Exchange 的字元資料行以 ntext 資料行對 SQL Server 公開。為了對這些資料行執行比較,必須使用 CONVERT 函數將資料行明確轉換為 nvarchar。

  • SQL Server 分散式查詢並不支援含有 OLE DB DBTYPE DBTYPE_VECTOR 的 Exchange 提供者中的多重值資料行。

若要從 SQL Server 透過上述建立的連結伺服器存取 Exchange Web Store 內的資料

  • 從 Web store 中感興趣的資料夾建立檢視表來擷取需要的屬性作為資料行。檢視定義將字串資料行轉換為 nvarchar,資料行才可透過 WHERE 子句中的條件進行篩選。

    例如,讓 Web Store 包含名為 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
    

如需 Exchange OLE DB Provider 支援 SQL 語言的資訊,請參閱 Microsoft Exchange 2000 文件集。