AnyDAC アプリケーションの FireDAC への移行
FireDAC への移行 への移動
このトピックでは、AnyDAC を RAD Studio FireDAC として統合する際にリファクタリングを目的として行われた変更についてまとめたあと、既存の AnyDAC コード ベースを FireDAC に移行する方法を説明します。
AnyDAC と比較した FireDAC の変更点
FireDAC の原点である AnyDAC をよくご存知の方のために、重要な相違点を以下に示します。
- 新しいユニット名や新しい API プレフィックスなど、API の名前が変更されました。
- 階層的名前空間が実装されています。
- 以前のユニット名の形式は次のとおりでした。
- uAD<レイヤ><ロール>.pas
- FireDAC の新しいユニット名の形式は一般に次のとおりです。
- FireDAC.<レイヤ>.<ロール>.pas
- 以下に例をいくつか示します。
- uADCompClient が FireDAC.Comp.Client に変更
- uADStanOption が FireDAC.Stan.Option に変更
- uADPhysIB が FireDAC.Phys.IB に変更
- 以前のユニット名の形式は次のとおりでした。
- 階層的名前空間が実装されています。
- FireDAC コンポーネントについては、名前のプレフィックスが TADXxxx から TFDXxxx に変わりました。
- グローバル関数については、名前のプレフィックスが ADXxx から FDXxx に変わりました。
- 例外クラスについては、名前が EADXxx から EFDXxx に変わりました。
- 以下に例をいくつか示します。
- TADTable が TFDTable に変更
- TADPhysSQLiteDriverLink が TFDPhysSQLiteDriverLink に変更
- ADManager() が FDManager() に変更
- 実行時パッケージの名前が以下のように変更されました。
- FireDACCommon190、FireDACCommonDriver190、FireDACADSDriver190、FireDACASADriver190、FireDACDataSnapDriver190、FireDACDb2Driver190、FireDACDBXDriver190、FireDACIBDriver190、FireDACMSAccDriver190、FireDACMSSQLDriver190、FireDACMySQLDriver190、FireDACODBCDriver190、FireDACOracleDriver190、FireDACPgDriver190、FireDACSqliteDriver190、FireDAC190、fmxFireDAC190、vclFireDAC190
- 構成ファイルが、ADXxx.ini から FDXxx.ini に名前が変更され、C:\Users\Public\Documents\Embarcadero\Studio\21.0\FireDAC に移動しました。
- FireDAC 構成レジストリ キーが HKCU\Software\Embarcadero\FireDAC に移動しました。
- キー値は、以下のように FireDAC 構成ファイルを指しています。
- DriverFile は FDDrivers.ini を指しています。
- ConnectionDefFile は FDConnectionDefs.ini を指しています。
- FireDAC 構成レジストリ キーが HKCU\Software\Embarcadero\FireDAC に移動しました。
- FireDAC サンプルは <RAD Studio の Samples ディレクトリ>\Delphi\Database\FireDAC にあります。
- サンプルやデモの詳細については、「サンプルの説明」を参照してください。
- RAD Studio XE5 より前のリリースで使用されていたツールはサポートされなくなりました。
FireDAC のオンライン ヘルプ
- トピック: FireDAC
- ライブラリ: FireDAC ユニット リスト
AnyDAC から FireDAC への移行
アプリケーションを以前の FireDAC API から新しい FireDAC API に移行する作業を簡略化し自動化するために、以下のものが用意されています。
- <RAD Studio>\Bin\reFind ユーティリティ
- 詳細については、「Perl RegEx 式を使用する検索および置換ユーティリティ: reFind.exe」を参照してください。
- 移行サンプル(<RAD Studio の Demos ディレクトリ>\Delphi\Database\FireDAC\Tool\reFindDemo にあります)
reFind は、Perl 互換の正規表現(PCRE)を使用してファイル内の実体の名前を変更するコマンド ライン ユーティリティです。
以下の手順に従って、AnyDAC アプリケーションを FireDAC に移行します。
- アプリケーションのバックアップ コピーを作成します。
- Microsoft Windows のコマンド ライン ウィンドウを開きます。
- プロジェクト ソースのルート フォルダに移動します。
- ユニットとメンバについて、次の 2 つのコマンドを実行します。
<RAD Studio>\Bin\reFind *.pas *.dpk *.dpr *.dproj *.inc /S /Y /I /W /B:0 /X:<RAD Studio の Demos ディレクトリ>\Delphi\Database\FireDAC\Tool\reFind\AD2FDMigration\FireDAC_Rename_Units.txt
<RAD Studio>\Bin\reFind *.pas *.dfm *.dpk *.dpr *.inc /S /Y /I /B:0 /X:<RAD Studio の Demos ディレクトリ>\Delphi\Database\FireDAC\Tool\reFind\AD2FDMigration\FireDAC_Rename_API.txt
- アプリケーションが実行時パッケージを使ってビルドされる場合は、上記のパッケージ名に従ってパッケージ参照の名前を変更します。
- アプリケーションでドライバ構成ファイルや永続接続定義ファイルを使用している場合は、上記の構成ファイル名に従って、これらのファイルの名前を変更します。
- reFind で加えられた変更を精査します。
- メモ:
- このアプローチでは、移行が完全に自動的に行われて成功するとは限りません。ルールに基づいたアプローチであり、名前が正確に 1 対 1 に対応していないからです。
- すべてのプロジェクトのバックアップ コピーをまず作成することを強くお勧めしますが、reFind を使用して、変更されたファイルのバックアップ コピーを作成することもできます。