0

データベースに接続された TADOQuery と、データをフェッチするように設定された sql があります。

TDataSetProvider を上記のクエリに

プロバイダに接続された TClientDataSet

データ セットに接続された TDataSource

TcxGrid に接続されたデータ ソース

クライアント データ セットは、それ自体がテーブルに接続されているマスター ソースにも接続されています。

期待どおりにグリッドに追加および削除できます (グリッドを直接編集することはできません。ユーザーができることは追加または削除だけです)。グリッドを制御するために、データセットで削除と追加を使用しています。

奇妙で解決できないのは、マスターソースグリッドで使用されているレコードを変更してから元のレコードに戻ると、データがデータベースまたはデータセットの保存された元の状態から更新されていることです。インメモリ データ セット。

したがって、レコードを削除した場合、それは再び表示され、まだ存在するレコードは複製されますが、最後の保存からデータベースに追加されたものは複製されません。ただし、データベースのデータ セットを更新すると、データベース テーブルは期待どおりになります。重複レコードはなく、グリッド/データ セットを介して削除されたものはすべて削除され、追加されたものはすべて追加されます。

これは本当に些細なフラグ設定だと思いますが、これを見つけることができず、他のすべてのクエリはデータを更新することに関するものであり、それを妨げるものではないようです.

任意の提案をいただければ幸いです。

4

0 に答える 0