Modification des paquets delta avant la mise à jour de la base de données

De RAD Studio
Aller à : navigation, rechercher

Remonter à Comment répondre aux demandes de mise à jour des clients

Avant qu'un fournisseur d'ensemble de données n'applique les mises à jour à la base de données, il génère un événement OnUpdateData. Le gestionnaire d'événement OnUpdateData reçoit en paramètre une copie du paquet Delta. C'est un ensemble de données client.

Dans le gestionnaire d'événement OnUpdateData, vous pouvez utiliser toutes les propriétés et méthodes de l'ensemble de données client pour modifier le paquet Delta avant de l'écrire dans l'ensemble de données. Une propriété s'avère particulièrement utile : UpdateStatus. UpdateStatus indique le type de modification que représente l'enregistrement en cours dans le paquet delta. Elle peut prendre l'une des valeurs énumérées dans le tableau suivant :

Valeurs de UpdateStatus :

Valeur Description

usUnmodified

Le contenu de l'enregistrement n'a pas été modifié.

usModified

Le contenu de l'enregistrement a été modifié.

usInserted

L'enregistrement a été inséré.

usDeleted

L'enregistrement a été supprimé.


Le gestionnaire d'événement OnUpdateData suivant insère la date en cours dans chaque nouvel enregistrement inséré dans la base de données :

procedure TMyDataModule1.Provider1UpdateData(Sender: TObject; DataSet: TCustomClientDataSet);
begin
  with DataSet do
  begin
    First;
    while not Eof do
    begin
      if UpdateStatus = usInserted then
      begin
        Edit;
        FieldByName('DateCreated').AsDateTime := Date;
        Post;
      end;
      Next;
    end;
end;
void __fastcall TMyDataModule1::Provider1UpdateData(TObject *Sender, TCustomClientDataSet *DataSet)
{
  DataSet->First();
  while (!DataSet->Eof)
  {
    if (DataSet->UpdateStatus == usInserted)
    {
      DataSet->Edit();
      DataSet->FieldByName("DateCreated")->AsDateTime = Date();
      DataSet->Post();
    }
    DataSet->Next();
  }
}


Voir aussi