スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

16.9 DbProviderFactoryを使用したプロバイダに依存しないコード

ADO.NET2.0では,DbProviderFactoryインスタンスによって,CommandやParameterなどのほかのクラスのインスタンスを生成できるようになりました。プロバイダの名前空間を示す文字列(以降,プロバイダ名と呼びます)を指定してDbProviderFactoryインスタンスを生成すると,あらかじめ提供されている情報に基づいて各プロバイダに特化したインスタンスを生成できます。なお,指定するプロバイダ名は構成ファイルに登録し,取得できます。これによって,プロバイダに依存しないコードを作成し,実行時にプロバイダを選択できます。

<この節の構成>
(1) プロバイダ情報の追加
(2) 構成ファイルを使用したプロバイダ名の指定
(3) DbProviderFactoryインスタンスの生成
(4) コーディング例

(1) プロバイダ情報の追加

DbProviderFactoryインスタンスをDbProviderFactoriesクラスのGetFactoryメソッドを呼び出して生成します。.NET Framework Version2.0/3.0のインストール時に,このメソッドに指定できるプロバイダ名は次の4種類です。

.NET Framework Version2.0/3.0のインストール時に組み込まれるmachine.configファイルについて,system.dataセクションのDbProviderFactories要素にプロバイダ情報を追加するとGetFactoryメソッドに指定できるようになります。

また,HiRDB.NETデータプロバイダの場合,指定するinvariant値は"Hitachi.HiRDB"です。

HiRDB.NETデータプロバイダの情報を追加する場合の例を次に示します。

(2) 構成ファイルを使用したプロバイダ名の指定

プロバイダ名を構成ファイルに登録し,DbProviderFactoryインスタンス生成時に取得します。構成ファイルについては,.NET Frameworkのマニュアルを参照してください。

HiRDB.NETデータプロバイダの場合,指定するプロバイダ名(value)は"Hitachi.HiRDB"です。なお,プロバイダ名をDbProviderFactoriesクラスのGetFactoryメソッドの引数に直接指定する場合,構成ファイルは不要です。

構成ファイルの例を次に示します。なお,キー名(provider)は任意の文字列です。

(3) DbProviderFactoryインスタンスの生成

(a) 構成ファイルを使用しない場合

プロバイダ名("Hitachi.HiRDB")をDbProviderFactoriesクラスのGetFactoryメソッドの引数に直接指定して,DbProviderFactoryインスタンスを生成します。コーディング例を次に示します。

 
DbProviderFactory dataFactory =
           DbProviderFactories.GetFactory("Hitachi.HiRDB");
 
(b) 構成ファイルを使用する場合

構成ファイルからキー名(provider)の値を取得し,その値をDbProviderFactoriesクラスのGetFactoryメソッドの引数に指定して,DbProviderFactoryインスタンスを生成します。コーディング例を次に示します。

 
DbProviderFactory dataFactory =
           DbProviderFactories.GetFactory(ConfigurationManager.AppSettings["provider"]);
 

(4) コーディング例

プロバイダに依存するプロバイダ名や接続文字列を構成ファイルから取得することによって,プログラムを変更することなく異なるプロバイダを使用できます。

構成ファイルを使用する場合のコーディング例を次に示します。

[図データ]