チュートリアル:デスクトップ プラットフォーム上のマルチデバイス アプリケーションから FireDAC を使用する
データベースおよび 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 マルチデバイス アプリケーション]を選択します。
- フォーム上に、TFDConnection コンポーネントをドロップします。
- TFDConnection コンポーネントを右クリックし、[接続エディタ...]を選択します。
- [FireDAC 接続エディタ]で、TFDConnection のパラメータを以下のように設定します。
- Driver ID プロパティを IB に設定します。
- Database パラメータを次のように設定します:
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Data\EMPLOYEE.GDB
(データベースの場所) - [User_Name]パラメータを sysdba に設定します。
- Passwordパラメータを masterkey に設定します。
-
- [テスト]ボタンをクリックして、接続をテストします。
- [OK]をクリックして、[FireDAC 接続エディタ]を閉じます。
- オブジェクト インスペクタで、TFDConnection のプロパティを次のように設定します。
- LoginPrompt プロパティを False に設定して、ユーザーにログインを求めるプロンプトを表示しないようにします。
- Connected プロパティを True に設定します。
[LiveBinding ウィザード]を使用する
[LiveBindings ウィザード]を使用して、LiveBindings コンポーネント(TBindSourceDB、TBindNavigator)や TFDQuery、Grid のコンポーネントを追加することができます。
LiveBinding コンポーネントを追加する
- [表示|LiveBinding デザイナ]を選択して[LiveBinding デザイナ]を開きます。
- [LiveBindings ウィザード]()を選択します。
- ウィザードの[バインディング タスク]ページで[データ ソースの作成]を選択し、[次へ >>]をクリックします。
- [データ ソース]ページで FireDAC を選択し、[次へ >>]をクリックします。
- [コマンド タイプ]を Query に変更します。
- [コマンド テキスト]プロパティを
select * from employee
に設定します。 - [コマンドのテスト]ボタンをクリックします。
- [次へ]ボタンをクリックします。
- [データ ソース ナビゲータを追加]を選択します。
- [完了]ボタンをクリックします。
この時点で、TBindSourceDB、TBindNavigator、TFDQuery のコンポーネントがフォームに追加されました。
グリッド コンポーネントを追加する
- LiveBindings デザイナを再度開きます。
- [グリッドをデータ ソースとリンク]バインディング タスクを選択します。
- [次へ]ボタンをクリックします。
- TSringGrid を選択します。
- [次へ]ボタンをクリックします。
- BindSourceDB1 を選択します。
- [完了]ボタンをクリックしてウィザードを閉じます。
実行時用にアプリケーションを準備する
FireDAC は疎結合の多層アーキテクチャを備えており、各レイヤでサービスが提供されます。 それぞれのサービス API は、他のレイヤからインターフェイス ファクトリを使って要求できる COM インターフェイスとして定義されています。
FireDAC を適切に動作させるには、IFDGUIxWaitCursor インターフェイスと IFDPhysDriver インターフェイスの実装をアプリケーションにリンクする必要があります。
- NavigatorBindSourceDB1 を選択し、Align プロパティを Top に設定します。
- StringGridBindSourceDB1 を選択し、Align プロパティを Client に設定します。
- TFDGUIxWaitCursor コンポーネントと TFDPhysIBDriverLink コンポーネントを、フォームにドロップします。
アプリケーションを macOS に配置する
ここまでは、デスクトップで InterBase を使用してきました。 つまり、実際のデータベースは、ローカルのハードディスク ドライブ上にあります(たとえば、C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Data\EMPLOYEES.GDB
)。 アプリケーションを macOS に配置するには、データベース ファイルを Mac OS ファイル システム(/Users/<ユーザー名>/EMPLOYEE.GDB など)にコピーする必要があります。 また、Interbase ToGo ファイルも macOS に配置しなければなりません。
Interbase ToGo を macOS に配置する
- [プロジェクト|配置]を選択して、配置マネージャを開きます。
- 配置マネージャの上部にあるターゲット プラットフォームのドロップダウン リストから[すべての構成 - macOS プラットフォーム]を選択します。
- [機能ファイルの追加]()を選択します。
- Interbase ToGo のデータベース モジュールを選択し、[OK]をクリックして[機能ファイル]ダイアログ ボックスを閉じます。
- Embarcadero から ToGo 用に reg_nnnnnnn.txt というパターンのライセンス ファイルを受け取っているかもしれません(nnnnnnn は生成された数値)。
- このファイルを reg_ibtogo.txt(
C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBase2020 にあります
)上に保存している場合には、必要なライセンスを選択するだけで構いません。 - ファイルを元の名前で保存している場合には、[ファイルの追加]を選択し、アプリケーションと一緒に配置する必要のあるファイルのリストにライセンス ファイルを追加してください。
- このファイルを reg_ibtogo.txt(
macOS 上のデータベース ファイルに接続するようコードを変更する
前のステップで説明したように、TFDConnection コンポーネントは Windows 上のデータベースに接続されています。 そのため、データベースに接続する前にファイルの場所を置き換える必要があります。手順は以下のとおりです。
- フォーム デザイナで FDConnection1 コンポーネントを選択します。
- [オブジェクト インスペクタ]で BeforeConnect イベントの値のフィールドをダブルクリックします。
- このイベント ハンドラに次のコードを追加します。
procedure TForm9.FDConnection1BeforeConnect(Sender: TObject);
begin
{$IFDEF MACOS}
FDConnection1.Params.Values['Database']:= '$(DOC)/EMPLOYEE.GDB';
{$ENDIF}
end;
void __fastcall TForm9::FDConnection1BeforeConnect(TObject *Sender) {
#ifdef __MACOS__
FDConnection1->Params->Values["Database"] = "$(DOC)/EMPLOYEE.GDB";
#endif
}
この {{(DOC) はパス変数で、パス式を簡単に記述するために役立ちます。 macOS では、}}(DOC) はユーザーのホーム ディレクトリ(/Users/<ユーザー名>)を示します。
Windows および macOS 上でアプリケーションを実行する
これでアプリケーションを実行する準備が整いました。 IDE 内で実行したときと同様に、データを参照することができるはずです。 また、TBindNavigator コンポーネントを使ってデータベースのレコードを変更することもできます。
アプリケーションを実行するには:
- プロジェクト マネージャで、ターゲット プラットフォームを選択します。
- 次のいずれかのコマンドを選択します:
- [実行|実行]
- [実行|デバッガを使わずに実行]