Suppression d'enregistrements

De RAD Studio
Aller à : navigation, rechercher

Remonter à Modification des données


Utilisez la méthode Delete pour supprimer l'enregistrement en cours d'un ensemble de données actif. Quand la méthode Delete est appelée,

  • L'ensemble de données reçoit un événement BeforeDelete.
  • L'ensemble de données tente de supprimer l'enregistrement en cours.
  • L'ensemble de données revient à l'état dsBrowse.
  • L'ensemble de données reçoit un événement AfterDelete.

Si vous voulez empêcher la suppression dans le gestionnaire d'événement BeforeDelete, vous pouvez appeler la procédure globale Abort :

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

Si Delete échoue, elle génère un événement OnDeleteError. Si le gestionnaire d'événement OnDeleteError ne peut pas corriger le problème, l'ensemble de données reste dans l'état dsEdit. Si Delete réussit, l'ensemble de données revient à l'état dsBrowse et l'enregistrement suivant celui qui est supprimé devient l'enregistrement en cours.

Si les mises à jour sont en mémoire cache, l'enregistrement supprimé n'est enlevé de la table de la base de données sous-jacente que si vous appelez ApplyUpdates.

Si vous avez doté vos fiches d'un composant navigateur, les utilisateurs pourront supprimer l'enregistrement en cours en cliquant sur le bouton d'effacement. Dans votre code, vous devez appeler explicitement Delete pour supprimer l'enregistrement en cours.

Voir aussi