レコードを作成するには、テーブルに2種類の列があるロジックを用意する必要があります。非キーフィールドを比較して更新レコードを検出する
- 非キーフィールドです一意のレコードがキーフィールド
- を意味識別つ
キーフィールドが変更されている場合は、私が追加/削除演算子を持つレコードを更新する必要があります。非キーフィールドが更新されている場合は、Change演算子を使用する必要があります。
コンパイラを使用してキーフィールドの変更を検出し、追加/削除演算子を使用できるオブジェクトのリストのレコードを取得します。
コンパレータロジックは、古いレコードのオペレータを削除し、新しいレコードを追加する変更が追加された場合、古いキーフィールドを& &と比較します。これはまっすぐです。
しかし、変更演算子は、どのフィールドが更新されているかを知る最善の方法でしょうか?したがって、「変更」が追加されます。コンパレータを使って何かが変更されているかどうかを検証できますが、コンパレータなどを使って知る方法が変わったのですか?下記のレコードIDの例として
、オープン日とステータスが他の部分と非キーフィールド
あるキーフィールドがありますID、オープン日、クローズ日、ステータス、エスト定休日
私は非キー比較の完全なレコードを比較することができますが、何か変更されたかどうかはわかりません。なぜなら、既存のレコードを削除/追加ではなく更新演算子で更新する必要があるからです。
まず、コンパレータチェックの追加/削除を実行してから、キー以外のフィールドの変更を検証します。私は自分の質問に答えたと思いますが、まずキーフィールドの比較を行い、キーフィールドの組み合わせの更新に基づいてレコードを追加/削除してから、同じレコードを作成します変更が検出された場合、更新演算子が追加され、挿入/削除は生成されません。正確な非キーフィールドが変更されたかどうかを検出する必要はありません。
ありがとうございました。
オブジェクトの変更を検出しようとしていますか、または重複を保存していて、コンパレータを使って比較していますか?また、あなたのコードのいくつかを含めることができます – jrtapsell
私は比較しようとしていると、前のレコード対新しいレコードの変更を検出しようとしています。私は答えを得ると思う。検討して読んでくれてありがとう。 –