チュートリアル:FireDAC RAD サーバー クライアント アプリケーションを実装する
EMS パッケージを使用してあらかじめセットアップした開発用 FireDAC API を通じて EMS サーバーに接続するクライアントを作成することができます。
これは、「チュートリアル:FireDAC EMS リソースを実装する」で作成したリソースを使用する、クライアント サンプル アプリケーションです。
VCL アプリケーションを作成し、TDataModule をプロジェクトに追加します:
- Delphi の場合:
- [ファイル|新規作成|VCL フォーム アプリケーション - Delphi]
- [プロジェクト マネージャ]で右クリックして[新規追加|その他...|新規作成]
- [Delphi プロジェクト|Delphi ファイル|データ モジュール]を選択して[OK]をクリック
- C++ の場合:
- [ファイル|新規作成|VCL フォーム アプリケーション - C++Builder]
- [プロジェクト マネージャ]で右クリックして[新規追加|その他...|新規作成]
- [C++Builder プロジェクト|C++Builder ファイル|データ モジュール]を開き、[OK]をクリックします。
TDataModule 上に、EMS サーバーから受け取った JSON データを扱うために必要な FireDAC コンポーネントを配置します。
以下のコンポーネントを追加します。
- 1 つの TFDGUIxWaitCursor コンポーネント
- 1 つの TFDSchemaAdapter コンポーネント - JSON の結果に使用するアダプタ。
- 2 つの TFDTableAdapter コンポーネント - 2 つのテーブルの内容に使用するアダプタ。
- DatSTableName プロパティで、 TFDQueries の名前を TDataModule から設定します。このチュートリアルの場合、QEmployee と QCustomers を使用します。
- SchemaAdapter プロパティに TFDSchemaAdapter の名前を設定します。
- 2 つの TFDMemTable コンポーネント。
- 名前を mtEmployees と mtCustomers に設定します。
- Adapter プロパティに、対応する TFDTableAdapter の名前を設定します。
- CachedUpdates プロパティを
True
に設定します。テーブルからの情報を更新するには、このオプションを有効にする必要があります。
- 2 つの TDataSource コンポーネント。
- DataSet プロパティに、対応する TFDMemTable の名前を設定します。
クライアント フォームでは、implementation セクションに TDataModule が含まれています:
- Delphi の場合:
implementation
{$R *.dfm}
uses Unit3;
- C++ の場合(Unit1.cpp ファイル内):
#include "Unit2.h"
クライアント フォームに以下のコンポーネントを追加します:
- 2 つの TDBGrid コンポーネント。テーブルのデータを表示および更新するためのもの。
- DataSource プロパティに TDataModule のデータソースを設定します。データをグリッドに表示するために必要な設定です。
- 2 つの TButton コンポーネント。データを取得するためと、更新を送信するためのもの。
- 1 つの TEMSProvider コンポーネント。EMS サーバーに対する構成を設定するためのもの。
- URLHost にサーバーの IP を設定します。デフォルト値は localhost です。
- URLPort にサーバーのポートを設定します。デフォルト値は 8080 です。
- 1 つの TEMSFireDACClient。クライアントの TDataModule から TFDSchemaAdapter に接続するためのもの。
- Provider プロパティに TEMSProvider の名前を設定します。
- Resource プロパティにアクセスしたいリソースの名前を設定します。 このチュートリアルの場合、FireDACTest を使用します。
- SchemaAdapter プロパティに TDataModule の TFDSchemaAdapter の名前を設定します。たとえば ClientModule.FDSchemaAdapter2 などです。
- 1 つの TActionList コンポーネント。データを取得したり更新するアクションを定義するためのもの。
- 右クリックして[アクション リストの設定...]を選択します。
- 新しいアクションを 2 つ作成し、アクションの Name プロパティを「ActionGetTables」と「ActionPostUpdates」に変更します。
- アクションの OnExecute イベント ハンドラをダブルクリックして、手続きを作成します。
GetTablesExecute 手続きのコードを次のように記述します。
- Delphi の場合:
procedure TClientForm.ActionGetTablesExecute(Sender: TObject);
begin
EMSFireDACClient1.GetData;
end;
- C++ の場合(Unit1.cpp ファイル内):
void __fastcall TForm1::ActionGetTablesExecute(TObject *Sender) {
EMSFireDACClient1->GetData();
}
PostUpdatesExecute 手続きのコードを次のように記述します。
- Delphi の場合:
procedure TClientForm.ActionPostUpdatesExecute(Sender: TObject);
begin
EMSFireDACClient1.PostUpdates;
end;
- C++ の場合(Unit1.cpp ファイル内):
void __fastcall TForm1::ActionPostUpdatesExecute(TObject *Sender) {
EMSFireDACClient1->PostUpdates();
}
- Get Tables(データ取得用)ボタンの Action プロパティを ActionGetTables に、OnClick イベント ハンドラを ActionGetTablesExecute に設定します。
- Post Updates(更新送信用)ボタンの Action プロパティを ActionPostUpdates に、OnClick イベント ハンドラを ActionPostUpdatesExecute に設定します。
新しい EMS FireDAC アプリケーションのテスト
開発環境でプロジェクトをテストするには、FireDAC EMS リソースが自分の EMS サーバー上で稼働しているかどうか確認します。
- プロジェクトを実行するには、F9 キーを押すか、[実行|実行]を選択します。
- [ActionGetTables]ボタンをクリックして、データベースdからデータを取得します。
- なんらかの値を更新したら、[ActionPostUpdates]ボタンをクリックして、データベースに新しいっデータを保存します。