データの登録

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

データの変更 への移動


レコードの編集が済んだら、Post メソッドを呼び出して変更を書き出さなければなりません。Post メソッドは、データセットの状態や、更新をキャッシュしているかどうかに応じて、異なる動作をします。

  • 更新をキャッシュしておらず、データセットの状態が dsEditdsInsert であれば、Post は現在のレコードをデータベースに書き込み、データセットの状態を dsBrowse に戻します。
  • 更新をキャッシュしていて、データセットの状態が dsEdit または dsInsert であれば、Post は現在のレコードを内部キャッシュに書き込み、データセットの状態を dsBrowse に戻します。編集内容は、ApplyUpdates を呼び出すまでデータベースに書き込まれません。
  • データセットの状態が dsSetKey であれば、Post はデータセットの状態を dsBrowse に戻します。

データセットの元の状態に関係なく、Post は、現在の変更を書き込む前と後に、BeforePost イベントと AfterPost イベントを発生させます。これらのイベントを使用して、ユーザー インターフェイスを更新したり、Abort 手続きを呼び出してデータセットが更新を登録できないようにすることができます。Post の呼び出しが失敗すると、データセットは OnPostError イベントを受け取るので、そこでユーザーに問題を知らせたり、修正を試みることができます。

登録は、明示的に実行することも、別の手続きの一部として暗黙的に実行することもできます。アプリケーションが現在のレコードから他に移動すると、Post が暗黙的に呼び出されます。FirstNextPriorLast の各メソッドを呼び出すと、テーブルが dsEdit モードまたは dsInsert モードであれば、Post が実行されます。Append メソッドおよび Insert メソッドでも、保留中のデータがあれば暗黙的に登録されます。

警告: Close メソッドでは、Post が暗黙的に呼び出されることはありません。保留中の編集を明示的に登録するには、Data.DB.TDataSet.BeforeClose イベントを使用してください。

関連項目

コード例