データへの変更内容のマージ

提供: RAD Studio
移動先: 案内検索

クライアント データセットでのファイルベースのデータの使用 への移動


クライアント データセットのデータを編集する場合、データの編集結果はすべて、メモリ内の変更ログにのみ存在します。このログは、データ自体とは別に維持管理することができますが、クライアント データセットを使用するオブジェクトには完全に透過的です。つまり、クライアント データセットをナビゲートしたりそのデータを表示するコントロールで認識されるのは、変更内容が反映されたデータです。ただし、変更内容を元に戻さない場合は、MergeChangeLog メソッドを呼び出すことにより、変更ログをクライアント データセットのデータにマージしなければなりません。MergeChangeLog では、変更ログ内の変更されたフィールド値で Data 内のレコードを上書きします。

MergeChangeLog の実行後、Data には、変更ログに存在していたすべての変更内容と既存のデータが結合したデータが格納されています。この結合データを新たな基準として、Data にさらに変更を加えることができます。MergeChangeLog により、すべてのレコードの変更ログがクリアされ、ChangeCount プロパティが 0 にリセットされます。

警告: プロバイダを使用するクライアント データセットの場合は、MergeChangeLog を呼び出さないでください。この場合は、ApplyUpdates を呼び出して、変更内容をデータベースに書き込みます。詳細については、「更新の適用」を参照してください。

メモ: Data プロパティのデータがもともと別のクライアント データセットから提供されたものである場合は、変更内容をそのクライアント データセットのデータにマージすることも可能です。それには、データセット プロバイダを使用する必要があります。その方法の例については、「データの直接割り当て」を参照してください。

変更ログの拡張取り消し機能を使用しない場合は、クライアント データセットの LogChanges プロパティを False に設定します。LogChangesFalse の場合、編集結果は、レコードをポストするときに自動的にマージされるため、MergeChangeLog を呼び出す必要はありません。

関連項目