Delphi 7 「FISH FACTS」サンプル(BDE)を Delphi XE8 (FireDAC) に移行

Delphi 7 の BDE ベース「おさかな」デモアプリを FireDAC ベースの Delphi XE8 アプリに変換手順メモ

入力となる BDE ベースアプリ

Delphi 7 をインストールすると入手できる以下のフォルダをコピーして 別ディレクトリに配置します。

C:\Program Files (x86)\Borland\Delphi7\Demos\Db\FishFact

ちなみに、Delphi XE8 で、これをこのままプロジェクトとして読み込むと以下のようなエラーになります。「fishfact.dpr」を開くと...

クラス TTable が見つかりません。エラーを無視して続行しますか? 注意:エラーを無視すると,コンポーネントまたはプロパティが失われる可能性があります。

無視したうえで、この変更は保存せずに XE8 は終了してください。
なお、これを回避するためには BDE を別途入手の上インストールすることになりますが、ここで示す手順は、BDE に依存せずに一気に変換していくための手順です。

reFind ユーティリティによる BDE → FireDAC 変換

reFind ユーティリティをもちいて、ソースコードの BDE 記述を FireDAC 記述に変換します。

"C:\Program Files (x86)\Embarcadero\Studio\16.0\bin\reFind.exe" *.pas *.dfm *.fmx /X:"C:\Users\Public\Documents\Embarcadero\Studio\16.0\Samples\Object Pascal\Database\FireDAC\Tool\reFind\BDE2FDMigration\FireDAC_Migrate_BDE.txt"

変換がうまく行くと、コマンドラインに以下の出力が表示されます。

Processing [.\Ffactwin.dfm] Modified.
Processing [.\Ffactwin.pas] Modified.

Delphi XE8 でプロジェクトを開く

それでは、変換後のプロジェクト「fishfact.dproj」を開きます。初回には、「FireDAC ログイン」というダイアログが表示されて以下のようなメッセージが表示されます。

「資格情報を入力してください」

ここはキャンセルで通過してください。ひきつづき以下のようなエラーダイアログが表示されますが、ここでは無視します。

[FireDAC][Comp][CInt]-506. 接続 [DBDEMOS] の確立がキャンセルされました.
FireDAC 用コンポーネントの追加

以下のコンポーネントを所定の箇所 (BDEデータベース処理をおこなっていたところ) 追加します。

  • TFDConnection
  • TFDGUIxWaitCursor
  • TFDPhysIBDriverLink
FDConnection1 コンポーネントのプロパティ変更

FDConnection1 の以下のプロパティを変更します。

  • DriverName: IBLite

続けて、FDConnection1 をダブルクリックします。そして、以下のように設定します。

  • Database: C:\Users\Public\Documents\Embarcadero\Studio\16.0\Samples\Data\dbdemos.gdb
  • User_Name: sysdba
  • Password: masterkey

それでは、設定した値が正しいかどうか確認するためにテストをおこないます。「テスト(T)」をクリックします。以下のようなメッセージが表示されたら設定成功です。「OK」を押してください。

接続の確立が成功しました。
Table1 (TFDTable) コンポーネントのプロパティ変更

Table1 の以下のプロパティを変更します。

  • Connection: FDConnection1

続けて Table1 をダブルクリックします。そして、以下のように設定します。

  • 列をすべて削除
  • 右クリックで「すべてのフィールドを追加」を選択

※これは、Delphi 7 も Delphi XE8 も、同様のサンプル用 DB が同梱されているものの、その列名に変更が加わっているために必要な手順です。

Table1 (TFDTable) コンポーネントのプロパティ変更

Table1 の以下のプロパティを変更します。

  • Active: True

コンパイル・ビルド・デプロイ・実行

それでは実行しましょう。

一覧に戻る

コンテンツ・メタ情報