基になるデータベースには存在しないが、既存のフィールドから派生できる TDataSet に追加のフィールドを追加する必要があります。計算されたフィールドでこれを簡単に行うことができ、それは完全に機能します。
これらのフィールドを編集して、変更されたデータを書き戻したいと思います。計算を逆にしてデータを既存のフィールドに書き戻すことはできますが、DB コントロールでは計算フィールドを編集できません。
これを可能にするアプローチはありますか?
更新: OK、背景についての詳細。
データセットには、TBytes 表現である blob フィールドがあります。一部のバイトは、既存の DB 編集フィールドで便利な方法で表現できる情報を含むことが識別されます。ただし、すべてのバイトが認識されているわけではないため、TBytes 表現を認識している別のアプリケーションで処理するために、TBytes 表現をそのまま保持する必要があります。このアプリはまた、既存のレコードを変更し、新しいレコードを挿入します。
データセット内の異なるレコードの TBytes は、多くの場合、異なるフィールド表現にマップされますが、データセットにフィルターまたは範囲を設定すると、それらが同じマッピングを持つことが保証されます。
前述したように、既知のバイトを抽出し、計算フィールドを介して文字列、日付、数値などに変換することは問題ありません。これらの値を TBytes に再変換することも可能です。問題は、データセットのナビゲーションをそのまま維持しながら、これらの余分なフィールドを編集可能にすることです。
役立つ場合: 双方向のマッピングを行い、フィールドを公開されたプロパティとして公開するクラスがあります。