本ブログでは、Delphi / C++Builderをある程度使用したことのある方をを対象として、FireDACの基本的な利用方法を解説していきます。

第2回のテーマ

  • FireDACファーストインプレッション
  • FireDACのコンポーネント
  • FireDACによる初めてのアプリケーション作成

FireDACファーストインプレッション

前回、Delphi / C++Builderにおけるデータベースアクセスと、その中でFireDACがなぜ優れているのかについて、簡単に説明しました。FireDACを使用すれば、簡単かつ迅速にデータベースへアクセス機能を実装できるのです。

百聞は一見に如かずです。まずは、実際に見てみましょう。

新規プロジェクトを作成し、[データエクスプローラ]からEMPLOYEEテーブルをフォーム上にドラッグ&ドロップします。

フォーム上にグリッドコントロールを配置し、プロパティを変更すると、

ほら、この通り。たったこれだけで、データが表示されるのです。この手法は、ご覧いただいたWindows向けのクライアントアプリケーションだけでなく、マルチデバイスアプリやサーバーサイドのWeb APIなどを開発する際にも活かすことができます。

では、少し詳しくFireDACについて解説していきましょう。

FireDACのコンポーネント

FireDAC には、約 60 個以上の非表示コンポーネントが用意されています。以下は、FireDACの主要なコンポーネントの一例です。

FireDACのコアコンポーネント

コンポーネント名

説明

TFDConnection

データベースとの接続を管理するクラス。FireDACからデータベースへ接続するためには、最低1個以上、このコンポーネントの配置が必要です。

TFDQuery

SQL文の実行および結果セット(複数可)の取得を行うためのデータセットクラス

TFDTable

単一のデータベース テーブルを扱うデータセットクラス

TFDTransaction

接続に対するトランザクションを管理するクラス

TFDMemTable

インメモリのデータセットクラス

TFDStoredProc

サーバー側のストアド プロシージャを実行できるデータセットクラス

上記のうちデータセットクラスは次回のブログで、もう少し詳しく解説いたします

FireDACのドライバリンクコンポーネント

FireDACのドライバ リンク コンポーネントは、サポートするデータベースごとに用意されており、RDBMSベンダーが提供するクライアントドライバとアプリケーションとのリンク、仲介を行うことが目的としています。

※各RDBMSのクライアントドライバのセットアップは、別途必要です。

コンポーネント名

説明

TFDPhysOracleDriverLink

Oracleデータベースへ接続するために必要なドライバリンククラス

TFDPhysMSSQLDriverLink

Microsoft SQL Server へ接続するために必要なドライバリンククラス

TFDPhysMySQLDriverLink

MySQL Server へ接続するために必要なドライバリンククラス

TFDPhysPgDriverLink

PostgreSQLへ接続するために必要なドライバリンククラス

TFDPhysSQLiteDriverLink

SQLiteへ接続するために必要なドライバリンククラス

TFDPhysIBDriverLink

InterBaseへ接続するために必要なドライバリンククラス

TFDPhysFBDriverLink

FireBirdへ接続するために必要なドライバリンククラス

TFDPhysODBCDriverLink ODBC接続ドライバを利用するために必要なドライバリンククラス

 FireDACのドライバリンククラスは、上記のようにTFDPhys>XXXDriverLinkのXXX部分には対応したデータベース名が入ります。


FireDACの構造を示す図は、以下の通りです。

FireDACによる初めてのアプリケーション作成

最初のセクションでは、データエクスプローラを利用して、あっという間にデータの表示まで行うことができました。ただ、実際にデータを表示するためには、データベースへの接続設定、ドライバリンクの選択、テーブルの結果セットの取得など、裏側では色々な設定が行われていました。

このセクションでは、こうした一連手順を理解するために、データエクスプローラの助けを借りず、ひとつひとつの手順を追って実際に簡単なアプリケーションの作成してみましょう。

  1. データベースへの接続のセットアップと、その接続の確立
  2. 実行に必要なFireDACのコンポーネントの配置
  3. データセットをグリッドコントロールと結び付ける
  4. アプリケーションを実行し、データを表示

今回は、接続するデータベースとしてInterBase 2020を使用します。

(1)VCLフォームアプリケーションのプロジェクト作成

Delphi/C++Builderのメニューから[ファイル]-[新規作成]-[Windows VCLフォームアプリケーション]を選択します。

(2)プロジェクトを保存する

メニューの[ファイル]-[すべて保存] を選択し、全てのファイルを保存してください。プロジェクトは、任意のフォルダに保存することができます。

(3)InterBaseサーバーを起動する

Windowsスタートメニューの”Embarcadero InterBase 2020 [instance=gds_db]”-”InterBase サーバーマネージャー”を選択し、サーバーマネージャーを起動してください。

InterBase サーバーマネージャー画面の[起動]ボタンを押してInterBaseのプロセスを開始します。

サーバーの状態が”動作中”であることを確認してください。

(4)フォーム上にFireDACのコンポーネントを配置する

ツールパレットの[FireDAC]カテゴリから
・TFDConnection
・TFDTable
 FireDACからデータベースへ接続するためには、最低1個以上、TFDConnectionコンポーネントの配置が必要です。

ツールパレットの[FireDAC Links]カテゴリから
・TFDPhysIBDriverLink

 をそれぞれフォーム上の任意の位置へ配置します。

TFDPhysXXXDriverLinkは、接続するデータベースごとに必要です。 例えば、InterBaseへ接続する場合は、TFDPhysIBDriverLinkを使用します(Delphi/C++Builder XE6以降は、TFDPhysXXXDriverLinkの配置は必須ではなく、任意)。

但し、独自のライブラリファイルを指定する必要がある場合は、VenderHome、VenderLibプロパティの設定を明示的に行う必要があるため、今まで通り、TFDPhysXXXXDriverLinkの配置が必要です。

このブログでは、明示的にTFDPhysIBDriverLinkを配置することにします。

(5)フォーム上にその他のコンポーネントを配置する

ツールパレットの[Data Access]カテゴリから
・TDataSource
ツールパレットの[Data Controls]カテゴリから
・TDBGrid

をフォーム上の任意の位置へ配置します。 (下図は、配置例)

(6)FireDAC接続エディタの表示

フォーム上のFDConnection1を選択し、マウスを右クリックするとポップアップメニューが表示されるので、そのメニューから[接続エディタ]を選択すると、FireDAC 接続エディタが表示されます。

(7)TFDConnectionの接続パラメータの設定

FireDAC接続エディタのドライバIDのリストから”IB”を選択します。

ドライバIDを選択すると、データベースの設定に必要なパラメータリストが表示されます。

FireDAC接続エディタ(上図)の空欄箇所を以下のパラメータのように変更してください。

パラメータ名

ドライバID

IB

Database

C:\ProgramData\Embarcadero\InterBase\gds_db\examples\database\employee.gdb

User_Name

SYSDBA

Password

masterkey

(8)データベースへの接続をテストする

データベースへ接続に必要なパラメータを設定後、FireDAC接続エディタの[テスト]ボタンを押してください。

テストボタンを押すと、データベースへのログイン画面が表示されます。

[OK]ボタンを押してください。

“接続の確立が成功しました。”

というダイアログメッセージが表示されれば、データベースへの接続は、正常に完了です。

データベースへの接続が確認できたら、フォーム上のFDConnection1を選択し、オブジェクトインスペクタの画面から以下のプロパティを変更します。

FDConnection1

プロパティ名

LoginPrompt

False


FDConnection1.LoginPromptプロパティをTrueの場合、アプリケーション起動時に毎回、データベースへの接続画面が表示されますので、ここではFalseに変更します。

(9)データセットをグリッドコントロールと紐付ける

オブジェクトインスペクタの画面から各コンポーネントの以下のプロパティを変更します。

DataSource1

プロパティ名

DataSet

FDTable1

DBGrid1

プロパティ名

DataSource

DataSource1

TDataSourceコンポーネントは、FireDACのデータセット(FDTable1)とフォーム上のグリッドコントロール(DBGrid1)を結びつける役割を持っています。

(10)表示するテーブルを選択する

オブジェクトインスペクタの画面から以下のプロパティを変更します。

FDTable1

プロパティ名

Connection

FDConnection1

TableName

EMPLOYEE

オブジェクトインスペクタのTableNameプロパティをクリックすると、テーブルの一覧が表示されますので、そのリストの中から選択できます。

TableNameプロパティで”EMPLOYEE”を選択したら、最後にオブジェクトインスペクタの画面から以下のプロパティを変更します。

FDTable1

プロパティ名

Active

True

TFDTable.ActiveプロパティをTrueに設定すると、データセットを開いてグリッドコントロールにデータが表示されます。

(11)プロジェクトを保存する

メニューの[ファイル]-[すべて保存] を選択し、全てのファイルを保存してください。

(12)アプリケーションを実行する

ツールバー(上図)の実行ボタン、または、キーボードの[F9]ボタンを押します。

(13)データを表示する

アプリケーションを実行すると、既にTFDTable.Active=Trueなため、TDBGridコンポーネントにInterBaseのEMPLOYEEテーブルのデータが表示されます。

以上でFireDACからデータベース(InterBase)へ接続し、データを表示する手順の終了です。

いかがでしたでしょうか。設定すべきプロパティさえ覚えてしまえば、簡単にデータベースへ接続するアプリケーションを作成できるようになりますね。

実際のアプリケーション開発では、ビジネスロジックに応じてコードを実装する必要があるので、もう少し複雑です。とはいえ、FireDACの一連のコンポーネントには、さまざまなプロパティ、イベント、メソッドが用意されています。その中でも、データ取得の役割を担うデータセットは重要な役割を担います。

次回は、この重要なFireDACのデータセットの概要を説明するとともに、具体的な実装コード例も交えてFireDACによるデータ更新の方法について解説していきます。

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.

Start Free Trial   Free Delphi Community Edition   Free C++Builder Community Edition   Upgrade Today  

Anonymous