提供するデータに新しいフィールドを作成できるカスタムTDatasetProviderがあります。
したがって、元のデータセットに次のフィールドがあるとします。
- 顧客ID
- 名前
- 年
また、ビットマップの表示を使用してDBGridで選択する必要があります。私のDSPはデータセットデータに呼び出されるブールフィールドを追加できるので、そうすることができSelected
ます。
私が今それをする方法:
- 2つのTClientDatasetオブジェクト(オリジンとターゲット)を作成します
- Originで、InternalGetRecordsメソッドのパラメーターから取得したデータをロードします(オーバーライドします)
- Targetでは、Originデータセットから定義されたfielddefを作成し、開発者が設計時に作成したfielddefを追加します。
- ターゲットでCreateDatasetを実行します
- そして、行ごと(およびフィールドごと)に、OriginデータベースからTargetデータセットにデータをコピーします
- 最後に、InternalGetRecordsからの戻り値としてDataバリアントを返します。
それを行うためのよりエレガントな(そしてより速い)方法があるかどうかは本当にわかりません。その結果を得る別の(より速くおよび/またはエレガントな)方法はありますか?