(これは、以前ブログに書いていたものをQiitaに加筆、修正し再投稿したものです)
BDE から FireDACへのマイグレーション TFDMemTable活用
BDEで作成されたC/Sモデルでは、データの編集に際して、サーバーからクライアントPCのParadoxのテーブルに一旦コピーして、編集し、その後サーバーに登録するという方法がとられるケースが多い。
また、印刷時に一時的な加工、編集でParadoxのテーブルを使うケースもある。
BDEからFireDACへマイグレーションするときの、上記のような、Paradoxのテーブルをどうするか。
この場合は、TFDMemTableに置き換える。
プログラムでは、TTableコンポーネントを使っていると思うので、.dfmファイルのTTableをTFDMemTable(*1)に書き換える。
(TTableについては、Field定義は事前に取り込んでおく必要はあります)
弊社の今までの実績では、LookupFieldやCalcFieldもそのままの定義、コードで使えます。また、イベントも変更無く使用可能です。
(すべてのイベント、メソッドの確認は行っていません)
注意点としては、TFDMemTableは、オンメモリで処理しますので、データの処理状況確認等が必要な場合は、必要なタイミングでSaveToFile()メソッドなどで、ファイルに出力することになります。
FDQueryで読み込んだデータは、
FDMemTable.Data := FDQuery.Data;
でコピーできます。
処理前は、FDMemTableは、Closeしておくことが必要です。
(*1)Delphiバージョンによっては、TADMemTable (AnyDAC)