セクション 3 ADO ( ActiveX Data Objects)プログラミング モデル
「Delphi での ADO の紹介」の記事で説明されているように、ADO は、電子メールやファイル システムなどのデータベースへのアクセスを可能にする COM (コンポーネント オブジェクト モデル) コンポーネント (DLL) のセットです。 ADO を使用して作成されたアプリケーションには BDE は必要ありません。 ADO を使用してさまざまなデータベースにアクセスするには、ADO/OLE DB (Object Linking and Embedding) ライブラリが必要です。 ADO を使用するために必要なファイルは、コンピュータ上にすでに存在している可能性があります。これらのファイルは、Windows 98/2000 の一部として Microsoft によって配布されています。 Windows 95 または NT を使用している場合は、ADO エンジンを配布またはインストールする必要がある場合があります。 Delphi 5 CD には、MDAC-Microsoft Data Access Components のインストール ファイルが含まれています。 Microsoft の公式 Web サイトから入手できる最新バージョンの MDAC を使用していることを確認してください。 MDAC は、ユニバーサル データ アクセスを機能させるための主要なテクノロジです。これには、ActiveX Data Objects (ADO)、OLE DB、Open Database Connectivity (ODBC) が含まれます。
注: Windows 95 コンピュータに正しくインストールするには、MDAC に DCOM95 (分散コンポーネント オブジェクト モデル) がインストールされている必要があります。正しく登録するには、MDAC によってインストールされるコンポーネントは、DCOM95 によってインストールされる DLL に依存します。 NT4.0 では DCOM95 は必要ないことに注意してください。場合によっては、Windows を実行しているコンピュータに DCOM をインストールする必要がありません。ただし、DCOM98 がインストールされていない場合は、MDAC をインストールする前に DCOM98 をインストールする必要があります。
OLE DB と ADO について詳しく説明する必要はありません。より実践的な問題に移りましょう。
ADOオブジェクト
ADO プログラミング モデルは、さまざまなデータ オブジェクトにアクセスするための複数のメソッドを提供する複数の ADO オブジェクトを中心に構築されています。これらのオブジェクトは、データ ソースへの接続、レコードセットのクエリと更新、およびエラーの報告を行う機能を提供します。 Delphi は、いくつかの VCL コンポーネントを介して、カプセル化されたコンポーネントを介してこれらのオブジェクトにアクセスします。 ADO で動作するオブジェクトを見てみましょう。
接続文字列を介してデータ ソースに接続するConnectionオブジェクト。 BDE/Delphi では、接続オブジェクトはデータベース コンポーネントとセッション コンポーネントの組み合わせです。
コマンド(Command) オブジェクトを使用すると、データ ソースを操作できます。これは、データベース データの追加、削除、クエリ、更新を処理できるコマンド (クエリまたはステートメントともみなされる) を記述します。
Recordset (レコード セット) オブジェクトは、クエリ (Query) コマンドの結果です。 Recordset は、Delphi テーブル (Table) コンポーネントまたはクエリ (Query) コンポーネントと考えることができます。 Recordsetによって返される各行には、複数の Field オブジェクトが含まれます。
ADO モデルに存在する他のオブジェクトとしては、Field オブジェクト、Parameter オブジェクト、および Error オブジェクトがあります。これらについては、次の章でもう一度説明します。
セクション 4 ADOExPRess を使用してデータベースに接続する
ADOExpress コレクションの各コンポーネントについて簡単に説明する前に、まず Access データベースに接続する方法を理解しましょう。もちろん、サンプル データベース AboutDelphi.mdb (翻訳者による追加: 前の章で作成したデータベース) に接続します。
Delphi(5) は主に、コンポーネント パネルの ADO ページにある ADOExpress コンポーネントを通じて ADO をサポートします。このコースでは、他のいくつかのデータベース対応コンポーネントが使用されます。ここでは、ADO を使用して Access データベースにアクセスするために必要なコンポーネントの最小限のセットに焦点を当てます。
Delphi を実行し、空のフォームで新しいアプリケーションを作成します。
ADO および Delphi を通じて Access データベース データにアクセスするには、少なくとも 3 つのデータ対応コンポーネントをプロジェクトに追加する必要があります。 1 つ目は DataControls コンポーネント ページの DBGrid で、テーブルまたはクエリを通じて取得したレコードを参照するために使用されます。 2 つ目は DataSource (DataAccess データ アクセス ページ) で、フォーム上のデータ セットと DBGrid コンポーネントを接続するために使用され、潜在的なデータ セット データの実現、ナビゲーション、編集を実現します。最後に、ADOTable (ADO ページ) があります。これは、ADO データベースから取得したテーブルを表します。これらをすべてフォーム (Form) 上にドラッグ アンド ドロップすると、コンポーネント名はデフォルト値になります。フォームは次のようになります。
ここでプログラムを実行すると、実際にはデータベースに接続されていないため、グリッドにはデータが表示されません。もう 1 つの点に注意してください。グリッドのみが表示され、他の 2 つのコンポーネントはコントロールが表示されません。
コンポーネント間のリンク
データベースのデータを表示するには、3 つのコンポーネントを接続する必要があります。オブジェクト インスペクターで次の設定を行います。
DBGrid1.DataSource = データソース1;
DataSource1.DataSet = ADOTable1;
ここからは難しい部分に入ります。実際にデータベースからデータを取得するには、ConnectionString を作成する必要があります。この文字列は、データベースの物理的な保存場所とそのアクセス方法を示します。 AdoTable コンポーネントの ConnectionString プロパティの省略記号ボタンをダブルクリックすると、次のダイアログ ボックスが表示されます。
Data Source=C:/!gajba/About/aboutdelphi.mdb;
Persist Security Info=False;
設計を完了するには、ADOTable コンポーネントを通じてアクセスされるテーブル名を、やはりオブジェクト インスペクターを使用して設定する必要があります。 ADOTable1.TableName = apps 設計時にデータベース データを表示したい場合は、ADOTable の Active プロパティを使用し、これを True に設定します。 はぁ!上記の手順をすべて実行すると、Applications テーブルにレコード (行) が 1 つだけあることがわかります。アプリケーションを実行すると、データベース内のデータを変更することもできます。もちろん、それ以上のことはできません。これは私が考える最も単純な ADO の例です。 このセクションはこれで結論づけることができます。次の章では、Delphi が提供するすべての ADO コンポーネントと、それらが残りのデータ対応コンポーネントと通信してより強力な Delphi データベース アプリケーションを作成する方法について説明します。 2002年12月22日 20時14分