レコードの削除

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

データの変更 への移動


Delete メソッドを使用して、アクティブなデータセットの中の現在のレコードを削除することができます。Delete メソッドが呼び出されると、以下の処理が行われます。

  • データセットは BeforeDelete イベントを受け取ります。
  • データセットは現在のレコードの削除を試みます。
  • データセットは dsBrowse 状態に戻ります。
  • データセットは AfterDelete イベントを受け取ります。

削除を中止すると BeforeDelete イベント ハンドラで判断した場合は、グローバルの Abort 手続きを呼び出すことができます。

procedure TForm1.TableBeforeDelete (Dataset: TDataset)
begin
  if MessageDlg('Delete This Record?', mtConfirmation, mbYesNoCancel, 0) <> mrYes then
    Abort;
end;
void __fastcall TForm1::TableBeforeDelete (TDataSet *Dataset)
{
  if (MessageBox(0, "Delete This Record?", "CONFIRM", MB_YESNO) != IDYES)
Abort();
}

Delete が失敗すると、OnDeleteError イベントが発生します。OnDeleteError イベント ハンドラで問題を修正できなければ、データセットは dsEdit 状態のままになります。Delete が成功すると、データセットは dsBrowse 状態に戻り、削除されたレコードの後のレコードが現在のレコードになります。

更新をキャッシュしている場合、削除対象のレコードは、ApplyUpdates を呼び出すまで、背後にあるデータベース テーブルから削除されません。

フォーム上にナビゲータ コンポーネントを置いている場合、ユーザーはナビゲータの削除ボタンをクリックして現在のレコードを削除することができます。コードで現在のレコードを削除するには、明示的に Delete を呼び出さなければなりません。

関連項目