データベース サーバーへの直接接続
データベース アーキテクチャ への移動
最も一般的なデータベース アーキテクチャは、データセットが接続コンポーネントを使用して、データベース サーバーへの接続を確立するというものです。その後、データセットはサーバーからデータを直接取得したり、編集結果をサーバーに直接登録します。その様子を次の図に示します。
データベース サーバーへの直接接続
データセットの種類ごとに独自の型の接続コンポーネントが使われ、そのそれぞれが 1 つのデータ アクセス メカニズムを表します。
- データセットが dbExpress データセットの場合(TSQLDataSet、TSQLTable、TSQLQuery、TSQLStoredProc など)、接続コンポーネントは Data.SqlExpr.TSQLConnection オブジェクトです。データセットを SQL 接続コンポーネントに接続するには、データセットの SQLConnection プロパティを設定します。dbExpress データセットの使用時には、明示的に接続コンポーネントを追加する必要があります。もう 1 つ、dbExpress データセットが他のデータセットと異なるのは、dbExpress データセットが常に読み取り専用で単方向である点です。つまり、レコード間の移動は順方向に 1 つずつしか行えず、編集をサポートするデータセット メソッドは使用できません。
- データセットが ADO データセットの場合(TADODataSet、TADOTable、TADOQuery、TADOStoredProc など)、接続コンポーネントは Data.Win.ADODB.TADOConnection オブジェクトです。データセットを ADO 接続コンポーネントに接続するには、データセットの Connection プロパティを設定します。BDE データセットの場合と同様に、明示的に接続コンポーネントを追加する必要はありません。その代わりに、データセットの ConnectionString プロパティを設定します。
- データセットが InterBase Express データセットの場合(TIBDataSet、TIBTable、TIBQuery、TIBStoredProc など)、接続コンポーネントは IBX.IBDatabase.TIBDatabase オブジェクトです。データセットを IB データベース コンポーネントに接続するには、データセットの Database プロパティを設定します。dbExpress データセットの場合と同様に、明示的に接続コンポーネントを追加する必要があります。
- データセットが BDE データセットの場合(TTable、TQuery、TStoredProc など)、接続コンポーネントは TDatabase オブジェクトです。データセットをデータベース コンポーネントに接続するには、データセットの Database プロパティを設定します。BDE データセットの使用時には、明示的にデータベース コンポーネントを追加する必要はありません。データセットの DatabaseName プロパティを設定すれば、データベース コンポーネントは実行時に自動的に作成されます。
上記のコンポーネントの他に、TBDEClientDataSet、TSimpleDataSet、TIBClientDataSet などの特化したクライアント データセットをデータベース接続コンポーネントと一緒に使用することができます。これらのクライアント データセットを使用する場合は、適切な型の接続コンポーネントを DBConnection プロパティの値に指定します。
データセットの種類ごとに使用する接続コンポーネントは異なりますが、どれも多くの同じタスクを実行するため、持っているプロパティやメソッドやイベントの多くは同じです。さまざまなデータベース接続コンポーネントの共通点については、「データベースへの接続」を参照してください。
このアーキテクチャは、データベース サーバーがローカル データベースかリモート データベース サーバーかに応じて、単層アプリケーションまたは 2 層アプリケーションになります。データベース情報を操作するロジックは、データ モジュールに分離されてはいるものの、ユーザー インターフェイスを実装しているのと同じアプリケーションに含まれます。
メモ: 2 層アプリケーションを作成するために必要な接続コンポーネントやドライバは、Delphi のすべてのバージョンで使用できるわけではありません。