チュートリアル:デスクトップ プラットフォーム上のマルチデバイス アプリケーションから FireDAC を使用する

提供: RAD Studio
移動先: 案内検索

データベースおよび LiveBinding のチュートリアル への移動

このチュートリアルでは、Windows や Mac で FireDAC フレームワークを使って、InterBase ToGo が管理するデータを閲覧するための基本手順を説明します。

ヒント: このチュートリアルを実行するには、IBToGoライセンスが必要です。 トライアル版を使用していて、Mac 上で InterBase をテストしたい場合には、トライアル期間中、IBToGo テスト配置ライセンスを使用することができます。 配置トライアル ライセンスを有効にするには、リンクをたどって InterBase ToGo 配置にアクセスしてください。。

FireDAC を使用してデータベースに接続する

FireDAC は、Delphi、C++Builder、FreePascal でクロスプラットフォーム データベース アプリケーションを開発するための他に類を見ない汎用データ アクセス コンポーネント セットです。 FireDAC を使用すると、その強力な共通アーキテクチャのため、Delphi から InterBase、SQLite、MySQL、SQL Server、Oracle、PostgreSQL、IBM DB2、SQL Anywhere、Access、Firebird、Informix などに高速かつ直接にネイティブ アクセスすることができます。

FireDAC InterBase ネイティブ ドライバでは、Embarcadero InterBase の Server、Desktop、Developer、ToGo の各エディションおよび IBLite のバージョン 6 以降をサポートしています。

  • Windows 上で Interbase ToGo が管理するデータを FireDAC を使って閲覧するには、以下の x86 または x64 クライアント ソフトウェアがワークステーションにインストールされている必要があります。
    • IBTOGO.DLL: 組み込み型の InterBase ToGo または IBLite を使ったデータベースを x86 アプリケーションから操作するためのライブラリ
    • IBTOGO64.DLL: 組み込み型の InterBase ToGo または IBLite を使ったデータベースを x64 アプリケーションから操作するためのライブラリ
  • macOS 上で Interbase ToGo が管理するデータを FireDAC を使って閲覧するには、x86 組み込み型 InterBase の libibtogo.dylib が必要です。

ユーザー インターフェイスを設計しセットアップする

新規プロジェクトを作成します。 [HD マルチデバイス アプリケーション]を選択します。

  1. フォーム上に、TFDConnection コンポーネントをドロップします。
  2. TFDConnection コンポーネントを右クリックし、[接続エディタ...]を選択します。
  3. [FireDAC 接続エディタ]で、TFDConnection のパラメータを以下のように設定します。
    1. Driver ID プロパティを IB に設定します。
    2. Database パラメータを次のように設定します: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEE.GDB(データベースの場所)
    3. [User_Name]パラメータを sysdba に設定します。
    4. Passwordパラメータを masterkey に設定します。
      Connection editor.png

    5. [テスト]ボタンをクリックして、接続をテストします。
      Test connection success.png

    6. [OK]をクリックして、[FireDAC 接続エディタ]を閉じます。
  4. オブジェクト インスペクタで、TFDConnection のプロパティを次のように設定します。
    1. LoginPrompt プロパティを False に設定して、ユーザーにログインを求めるプロンプトを表示しないようにします。
    2. Connected プロパティを True に設定します。

[LiveBinding ウィザード]を使用する

[LiveBindings ウィザード]を使用して、LiveBindings コンポーネント(TBindSourceDBTBindNavigator)や TFDQueryGrid のコンポーネントを追加することができます。

LiveBinding コンポーネントを追加する

  1. [表示|LiveBinding デザイナ]を選択して[LiveBinding デザイナ]を開きます。
  2. [LiveBindings ウィザード]LBDLiveBindingsWizard.png)を選択します。
    Livebinding designer1.png

  3. ウィザードの[バインディング タスク]ページで[データ ソースの作成]を選択し、[次へ >>]をクリックします。
  4. [データ ソース]ページで FireDAC を選択し、[次へ >>]をクリックします。
  5. [コマンド タイプ]Query に変更します。
  6. [コマンド テキスト]プロパティを select * from employee に設定します。
    Livebinding wizard.png

  7. [コマンドのテスト]ボタンをクリックします。
  8. [次へ]ボタンをクリックします。
  9. [データ ソース ナビゲータを追加]を選択します。
  10. [完了]ボタンをクリックします。

この時点で、TBindSourceDBTBindNavigatorTFDQuery のコンポーネントがフォームに追加されました。

グリッド コンポーネントを追加する

  1. LiveBindings デザイナを再度開きます。
  2. [グリッドをデータ ソースとリンク]バインディング タスクを選択します。
    Livebinding wizard.1.png

  3. [次へ]ボタンをクリックします。
  4. TSringGrid を選択します。
  5. [次へ]ボタンをクリックします。
  6. BindSourceDB1 を選択します。
  7. [完了]ボタンをクリックしてウィザードを閉じます。

この結果、バインディング図は次のようになります。
Diagram.png

実行時用にアプリケーションを準備する

FireDAC は疎結合の多層アーキテクチャを備えており、各レイヤでサービスが提供されます。 それぞれのサービス API は、他のレイヤからインターフェイス ファクトリを使って要求できる COM インターフェイスとして定義されています。

FireDAC を適切に動作させるには、IFDGUIxWaitCursor インターフェイスと IFDPhysDriver インターフェイスの実装をアプリケーションにリンクする必要があります。

  1. NavigatorBindSourceDB1 を選択し、Align プロパティを Top に設定します。
  2. StringGridBindSourceDB1 を選択し、Align プロパティを Client に設定します。
  3. TFDGUIxWaitCursor コンポーネントと TFDPhysIBDriverLink コンポーネントを、フォームにドロップします。
    FormComponentsAdded.png

アプリケーションを macOS に配置する

ここまでは、デスクトップで InterBase を使用してきました。 つまり、実際のデータベースは、ローカルのハードディスク ドライブ上にあります(たとえば、C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEES.GDB)。 アプリケーションを macOS に配置するには、データベース ファイルを Mac OS ファイル システム(/Users/<ユーザー名>/EMPLOYEE.GDB など)にコピーする必要があります。 また、Interbase ToGo ファイルも macOS に配置しなければなりません。

Interbase ToGo を macOS に配置する

  1. [プロジェクト|配置]を選択して、配置マネージャを開きます。
  2. 配置マネージャの上部にあるターゲット プラットフォームのドロップダウン リストから[すべての構成 - macOS プラットフォーム]を選択します。
  3. [機能ファイルの追加]DMgrAddFeatFiles.png)を選択します。
    AddingFeaturedFiles.png

  4. Interbase ToGo のデータベース モジュールを選択し、[OK]をクリックして[機能ファイル]ダイアログ ボックスを閉じます。
    Featured files.png

    Embarcadero から ToGo 用に reg_nnnnnnn.txt というパターンのライセンス ファイルを受け取っているかもしれません(nnnnnnn は生成された数値)。
    • このファイルを reg_ibtogo.txtC:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBase2020 にあります)上に保存している場合には、必要なライセンスを選択するだけで構いません。
    • ファイルを元の名前で保存している場合には、[ファイルの追加]を選択し、アプリケーションと一緒に配置する必要のあるファイルのリストにライセンス ファイルを追加してください。

macOS 上のデータベース ファイルに接続するようコードを変更する

前のステップで説明したように、TFDConnection コンポーネントは Windows 上のデータベースに接続されています。 そのため、データベースに接続する前にファイルの場所を置き換える必要があります。手順は以下のとおりです。

  1. フォーム デザイナで FDConnection1 コンポーネントを選択します。
  2. [オブジェクト インスペクタ]で BeforeConnect イベントの値のフィールドをダブルクリックします。
  3. このイベント ハンドラに次のコードを追加します。
Delphi
procedure TForm9.FDConnection1BeforeConnect(Sender: TObject);
begin
{$IFDEF MACOS}
  FDConnection1.Params.Values['Database']:= '$(DOC)/EMPLOYEE.GDB';
{$ENDIF}
end;
C++Builder:
void __fastcall TForm9::FDConnection1BeforeConnect(TObject *Sender) {
#ifdef __MACOS__
 FDConnection1->Params->Values["Database"] = "$(DOC)/EMPLOYEE.GDB";
#endif
}

この {{(DOC)パス変数で、パス式を簡単に記述するために役立ちます。 macOS では、}}(DOC) はユーザーのホーム ディレクトリ(/Users/<ユーザー名>)を示します。

Windows および macOS 上でアプリケーションを実行する

これでアプリケーションを実行する準備が整いました。 IDE 内で実行したときと同様に、データを参照することができるはずです。 また、TBindNavigator コンポーネントを使ってデータベースのレコードを変更することもできます。


アプリケーションを実行するには:

  1. プロジェクト マネージャで、ターゲット プラットフォームを選択します。
    Projects1.png
  2. 次のいずれかのコマンドを選択します:
    • [実行|実行]
    • [実行|デバッガを使わずに実行]



RunTimeMac.png

関連項目