Data Provider for .NET Guide (v11)

Data Access Application Block

Data Access Application Block(DAAB)は、日常的なデータベース タスクについて、開発者が ADO.NET の決まりきったアクセス コードを標準化されたコードに置き換えできるように設計されています。Database クラスのオーバーロード メソッドは次のことが行えます。

アプリケーションで特定の DBMS 機能を扱う必要がある場合は、Pervasive PSQL ADO.NET データ プロバイダーを使用できます。

DAAB の使用に適した状況

DAAB には、データベースにアクセスするための最も一般的なメソッドを簡略化する少数のメソッドが含まれています。それぞれのメソッドは、データの取得やデータベースへの接続の管理に必要なロジックをカプセル化します。アプリケーションが標準のデータ アクセス技術を使用する場合は、アプリケーション ブロックの使用を考慮してください。

DAAB を ADO.NET と一緒に使用することにより、ADO.NET 用のアプリケーションを作成する際の効率と生産性が向上します。抽象 Database クラスは、DbCommand クラスで使用されるメソッドと同じ ExecuteNonQuery、ExecuteReader、ExecuteScalar など多数のメソッドを提供するか、またはデータベース固有のコードが使用されている場合は、PsqlCommand などのデータ プロバイダー固有のクラスを提供します。

開発中にはデフォルトの DAAB を使用するのが便利ですが、その結果作成されたアプリケーションは移植性に欠けます。プロバイダー固有の Pervasive PSQL DAAB 実装を使用すると、アプリケーションには Pervasive PSQL ADO.NET データ プロバイダーの SQL レベル調整機能が含められます。アプリケーションが複数のデータベースにアクセスする必要があろうと、目的のデータ ソースが変更されると予想されていようと、より高い柔軟性を持つことができます。

汎用クラスとデータベース固有のクラスの使用

アプリケーション ブロックは、異なる種類のデータベース間で同じコードの使用が可能になるコードを ADO.NET に補完します。DAAB を ADO.NET データベース プロバイダーと一緒に使用する場合、次の 2 つの選択肢があります。

GenericDatabase クラス オプションは、データベースの動作に特殊な制御を必要とするアプリケーションにはあまり適しません。移植性のためには、プロバイダー固有のソリューションが最適な方法です。

アプリケーションが特殊な方法でデータを取得する必要がある場合、または、Pervasive PSQL 固有の機能を利用するためにコードのカスタマイズが必要な場合は、Pervasive PSQL ADO.NET データ プロバイダーを使用する方がよりニーズに合うでしょう。

DAAB の構成

アプリケーションで DAAB を使用できるよう構成する前に、環境を設定する必要があります。

  1. http://msdn.microsoft.com/en-us/library/ff647292.aspx から Microsoft Enterprise Library 4.1(October 2008)をダウンロードしてインストールします。
  2. <インストール ディレクトリ>¥Enterprise Library¥Src¥CS¥Pervasive にある、データ プロバイダーの Pervasive PSQL DAAB プロジェクトを開きます。
  3. 次に、プロジェクトをコンパイルして出力ディレクトリを書き留めます。

Data Access Application Block の構成方法は、次の 2 つの手順から成ります。

新しい DAAB エントリを追加するには

では、Enterprise Library Configuration ツールを使って、新しい DAAB エントリを追加します。

  1. Enterprise Library Configuration]を右クリックし、[New Application]を選択します。
  2. Application Configuration]を右クリックし、次に[NewData Access Application Block]を選択します。Enterprise Library Configuration ウィンドウが現れます。
  3. [Name]フィールドに DAAB の接続文字列の名前を入力します。
  4. [ConnectionString]フィールドに接続文字列を入力します。
  5. フィールドを右クリックして、データ プロバイダーを選択します。たとえば、Pervasive.Data.SqlClient を選択します。
  6. Custom Provider Mappings]を右クリックして、[NewProvider Mapping]を選択します。
  7. [Name]フィールドに手順 5 で入力したデータ プロバイダー名を選択します。
  8. [TypeName]フィールドを選択してから[...](参照)ボタンをクリックし、構築する Pervasive PSQL DAAB のデバッグ出力ディレクトリへ移動します。次に、TypeName を選択します。たとえば、Pervasive PSQL TypeName は Pervasive.EnterpriseLibrary.Data.Pervasive.dll です。
  9. [Enterprise Library Configuration]ウィンドウは当分開いたままにしておき、次のセクションを完了するまで構成を保存しないでください。

アプリケーションへの Data Access Application Block の追加

DAAB を新規または既存のアプリケーションに追加するには、以下の手順を行います。

  1. Visual Studio ソリューションに次の 2 つの参照を追加します。
  2. C# ソース コードに次のディレクティブを追加します。
    using Microsoft.Practices.EnterpriseLibrary.Data; 
    using System.Data; 
    
  3. ソリューションをリビルドして新しい従属物が確実に機能するようにします。
  4. 現在のソリューションでの出力の Debug または Release パスの場所を決定して、Enterprise Library Configuration ウィンドウに戻ります(新しい DAAB エントリを追加するにはを参照してください)。
  5. Application Configuration]ノードの下にある接続文字列を右クリックして、[Save Application]を選択します。
  6. 現在のソリューションの Debug または Release 出力ディレクトリに移動し、現在のソリューションの .exe ファイルを見つけます。
  7. ファイル名を 1 回クリックし、.config を名前に追加します(たとえば MyPSQL.config)。
  8. 保存するファイルの種類に "All Files" が選択されていることを確認して[Save]を選択します。
  9. ファイル エクスプローラーを使用して、Pervasive DAAB ディレクトリから Pervasive.EnterpriseLibrary.Data.Pervasive.dll をコピーします。
  10. この DLL のコピーを現在のソリューションの Debug または Release 出力ディレクトリのいずれかに配置します。

アプリケーション コードでの DAAB の使用

これで DAAB の構成が終わったので、この DAAB 上にアプリケーションを構築することができます。

下の例では、DAAB MyPSQL および DatabaseFactory を使用して、Pervasive PSQL データ ソースによる裏付けのある Database オブジェクトのインスタンスを生成します。

using System; 
using System.Data.Common; 
using System.Text; 
using Microsoft.Practices.EnterpriseLibrary.Data; 
using System.Data; 
 
namespace DAAB_Test_App_1 
{ 
  class Program 
  { 
    static void Main(string[] args) 
    { 
      Database database = 
       DatabaseFactory.CreateDatabase("MyPSQL"); 
      DataSet ds = 
       database.ExecuteDataSet(CommandType.TableDirect,
       "SQLCOMMANDTEST_NC_2003SERVER_1"); 
 
    } 
  } 
} 

これで、Microsoft Enterprise Library の DAAB コーディング パターンを自由に使用できます。


Microsoft Enterprise Library の使用

Logging Application Block