OLE DB Provider for Exchange

Microsoft OLE DB Provider for Exchange は、Microsoft Exchange 2000 Web Store に格納されたデータを表形式で公開します。このデータの照会には、OLE DB Provider for Microsoft Indexing Service でサポートされている SQL サブセットに似た SQL 形式の言語を使用します。

Microsoft SQL Server の分散クエリは、この OLE DB プロバイダを通して Exchange Web Store のデータを照会するために使用でき、SQL Server のテーブルと結合できます。Exchange Web Store は、SQL Server と同じコンピュータに配置される必要があります。他のコンピュータにある Web Store は、OLE DB Provider for Exchange を使用してアクセスすることはできません。

OLE DB Provider for Exchange は、Microsoft Exchange 2000 に付属しています。

Exchange Web Store に対してリンク サーバーを作成するには

  • provider_name 引数に 'exoledb.DataSource.1' を、sp_addlinkedserver システム ストアド プロシージャの data_source 引数に Web Store のルート フォルダの URL を使用します。

    EXEC sp_addlinkedserver 'exchange', 
    'Exchange OLE DB provider', 
    'exoledb.DataSource.1',
    'file:\\.\backofficestorage\localhost\public folders'
    
  • Windows 認証ログインでは、ログイン マッピングは不要です。それらのログインが OLE DB Provider for Exchange に接続すると、SQL Server によりそのログインの権限が借用されます。SQL Server 認証ログインでは、必要に応じてユーザー名とパスワードを指定してログイン マッピングを設定します。

OLE DB Provider for Exchange からデータを照会するときは、次の制約が適用されます。

  • サポートされるのは、パススルー クエリのみです。4 部構成の名前は、Exchange OLE DB Provider には使用できません。

  • OLE DB Provider for Exchange の文字型の列はすべて、SQL Server に ntext 型の列として公開されます。これらの列の比較を実行するには、CONVERT 関数を使用して列を明示的に nvarchar に変換する必要があります。

  • OLE DB DBTYPE DBTYPE_VECTOR という属性を持つ Exchange Provider の複数の値から構成される列は、SQL Server の分散クエリではサポートされません。

既に確立されたリンク サーバー経由で、SQL Server から Exchange Web Store のデータにアクセスするには

  • 目的の Web Store フォルダから必要なプロパティを列で取り出すビューを作成します。ビュー定義は文字列型の列を nvarchar に変換するので、WHERE 句の条件に基づいて列をフィルタで選択できます。

    たとえば、連絡先のリストが入った Contacts というフォルダを Web Store に格納させます。次のスクリプトは、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 のマニュアルを参照してください。