データベースに接続された TADOQuery と、データをフェッチするように設定された sql があります。
TDataSetProvider を上記のクエリに
プロバイダに接続された TClientDataSet
データ セットに接続された TDataSource
TcxGrid に接続されたデータ ソース
クライアント データ セットは、それ自体がテーブルに接続されているマスター ソースにも接続されています。
期待どおりにグリッドに追加および削除できます (グリッドを直接編集することはできません。ユーザーができることは追加または削除だけです)。グリッドを制御するために、データセットで削除と追加を使用しています。
奇妙で解決できないのは、マスターソースグリッドで使用されているレコードを変更してから元のレコードに戻ると、データがデータベースまたはデータセットの保存された元の状態から更新されていることです。インメモリ データ セット。
したがって、レコードを削除した場合、それは再び表示され、まだ存在するレコードは複製されますが、最後の保存からデータベースに追加されたものは複製されません。ただし、データベースのデータ セットを更新すると、データベース テーブルは期待どおりになります。重複レコードはなく、グリッド/データ セットを介して削除されたものはすべて削除され、追加されたものはすべて追加されます。
これは本当に些細なフラグ設定だと思いますが、これを見つけることができず、他のすべてのクエリはデータを更新することに関するものであり、それを妨げるものではないようです.
任意の提案をいただければ幸いです。