FireDAC.Comp.DataSet.TFDDataSet.SavePoint

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

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;

関連項目