Exchange 2000徹底解剖
>
開発環境としてのExchange 2000 Server
|
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種類で指定することができる。ファイル形式の場合,書式は“
ADOコンポーネントを使ってデータを検索する場合の書式は,WebDAVにおけるSEARCHメソッドで用いたSELECT文の書式と同じである。
たとえば,先のList 8と同じ処理(
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にマッピングされていないと,操作に失敗するので注意してほしい。
Providerプロパティに“ExOLEDB”を設定するという処理は,Openメソッドの引数にファイル形式のURL(file://./backofficestorage/の形のもの)を指定する場合には省くこともできる。
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のようにすると,
| 19/27 |
