FireDAC.Comp.DataSet.TFDDataSet.SavePoint
Delphi
property SavePoint: Int64 read GetSavePoint write SetSavePoint;
C++
__property __int64 SavePoint = {read=GetSavePoint, write=SetSavePoint};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
説明
変更ログのバージョン番号を取得/設定します。
SavePoint を使用すると、変更ログの現在のバージョン番号を取得できます。後ほど、変更ログを指定のバージョン番号に戻します。SavePoint は、CachedUpdates モードでのみ使用できます。SavePoint は、以下を使用するアプリケーションに役に立つ可能性があります。
- 取り消し機能(ただし、標準的にはやり直し操作を実装できない)
- インメモリ トランザクション
変更ログがいったん前の状態に戻ると、データセットは SavePoint に戻ることはできません。それには以下の場合があります。
- SavePoint を既に保存してある値に設定することで変更を取り消す。
- RevertRecord メソッドを使ってあまりに多い変更を取り消す。
- CancelUpdates または CommitUpdates を使って変更ログをクリアする。
変更ログにもう記載されていない状態に SavePoint を設定しようとすると、例外が発生します。
例
var
iSavePoint: Integer;
....
// remember changes log state
iSavePoint := FDMemTable1.SavePoint;
try
FDMemTable1.AppendRecord(....);
FDMemTable1.AppendRecord(....);
FDMemTable1.AppendRecord(....);
...
FDMemTable1.Delete;
// mark changes as persistent and clear change log
FDMemTable1.CommitUpdates;
except
// in case of exception, undo changes
FDMemTable1.SavePoint := iSavePoint;
raise;
end;