Exchange 2000徹底解剖
開発環境としてのExchange 2000 Server

ADOとOLE DB

 ADOコンポーネントを使うと,Web Storage Systemをリレーショナルデータベースのように扱うことができる。

 Exchange 2000 Serverをインストールすると,「Exchange OLE DBプロバイダ(ExOLEDB)」もインストールされる。ADOコンポーネントを使ってExchange 2000 ServerのWeb Storage Systemにアクセスするには,ExOLEDBプロバイダを経由してアクセスすることになる。一般にADOコンポーネントを使ってリレーショナルデータベースにアクセスする場合には,ADODB.ConnectionオブジェクトやADODB.RecordsetオブジェクトのOpenメソッドを用いてサーバーとのコネクションを張って操作する。ExOLEDBプロバイダを使ってExchange 2000 ServerのWeb Storage Systemにアクセスする場合もその操作は変わらない。

 リレーショナルデータベースにアクセスする場合,操作対象となるデータベース名やテーブル名を指定することになるが,Exchange 2000 Serverの場合には,データベース名やテーブル名の代わりに,操作対象となるアイテムの場所を指定することになる。アイテムの場所は,ファイル形式(file://)とHTTP形式(http://)の2種類で指定することができる。ファイル形式の場合,書式は“file://./backofficestorate/ドメイン名/フォルダ名/”のようになり,HTTP形式の場合にはWeb Storate SystemにおけるURLと同じ書式(IISの仮想ディレクトリの設定どおり)となる。

 ADOコンポーネントを使ってデータを検索する場合の書式は,WebDAVにおけるSEARCHメソッドで用いたSELECT文の書式と同じである。

 たとえば,先のList 8と同じ処理(http://www.foobar.co.jp/public/の配下にあるデータから,作成日が2000年8月1日以降のものの表示名とファイルサイズを取得する)というプログラムは,List 11のようになる。

 List 11の9行目を見るとわかるように,ExOLEDBプロバイダを経由してExchange 2000 Serverと接続するためには,事前にADODB.ConnectionオブジェクトのProviderプロパティに"ExOLEDB"を指定する。そしてその次に,Openメソッドで検索の対象となるURLを指定し,Exchange 2000 Serverと接続することになる(11行目)。なお,Openメソッドで接続する際,指定したURLがExchange 2000 ServerのWeb Storage Systemにマッピングされていないと,操作に失敗するので注意してほしい。


One Point!Providerプロパティに“ExOLEDB”を設定するという処理は,Openメソッドの引数にファイル形式のURL(file://./backofficestorage/の形のもの)を指定する場合には省くこともできる。

One Point! 11行目のOpenメソッドの呼び出しでは,ユーザー名とパスワードを指定していない。しかし,第3引数にユーザー名を,第4引数にパスワードを,明示的に指定することもできる。明示的に指定しない場合,アプリケーションを実行しているユーザーアカウントで認証処理される。

 Openメソッドを呼び出してExchange 2000 Serverと接続したら,次にSEARCHメソッドによる検索処理(List 8)と同様に,SELECT文の書式を指定してExecuteメソッドを呼び出し,検索処理を開始する(16行目)。Executeメソッドを呼び出した結果は,一般的なリレーショナルデータベースへのアクセスと同様,ADODB.Recordsetオブジェクトに格納される。あとは,19〜24行目にあるとおりループ処理し,結果のレコードセットを取り出せばよい。

 なお,ここではSELECT文を使った検索例しか示していないが,取得したFieldsオブジェクトは,後述するCDOコンポーネントのオブジェクトにマッピングすることもできる。このようにした場合,ADOコンポーネントからSQL文を使って検索したメッセージや予定帳などのアイテムを,CDOコンポーネントで操作することができる。

 さらに,ADO 2.5でサポートされたADODB.StreamオブジェクトとADODB.Recordオブジェクトを使うことで,アイテムをファイルとして新規作成したり,編集したり,削除したりすることができる。たとえば,List 12のようにすると,http://www.foobar.co.jp/public/myData/ディレクトリの下にtest.txtというファイルが作成される。

Prev 19/27 Next