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

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation des composants fournisseur - Index


Un fournisseur applique les mises à jour aux enregistrements de la base de données en se basant sur un paquet de données Delta envoyé par un ensemble de données client ou agent XML. Le client demande des mises à jour en appelant (indirectement, via l'interface IAppServer) la méthode ApplyUpdates.

Comme tous les appels de méthode effectués via l'interface IAppServer, le fournisseur peut communiquer des informations d'état persistantes à un ensemble de données client avant et après l'appel de ApplyUpdates. Cette communication s'effectue en utilisant les gestionnaires d'événements Provider.BeforeApplyUpdates et Provider.AfterApplyUpdates.

Si vous utilisez un fournisseur d'ensemble de données, des événements supplémentaires vous apportent un contrôle accru :

Quand un fournisseur d'ensemble de données reçoit un paquet de mises à jour, il génère un événement OnUpdateData dans lequel vous pouvez modifier le paquet Delta avant qu'il ne soit écrit dans l'ensemble de données ou déterminer comment les mises à jour sont appliquées. Après l'événement OnUpdateData, le fournisseur écrit les modifications dans la base de données ou l'ensemble de données source.

Le fournisseur effectue la mise à jour enregistrement par enregistrement. Avant d'appliquer chaque enregistrement, le fournisseur d'ensemble de données génère un événement BeforeUpdateRecord que vous pouvez utiliser pour filtrer les modifications avant qu'elles ne soient appliquées. Si une erreur se produit lors de la résolution d'un enregistrement, le fournisseur reçoit un événement OnUpdateError dans lequel il peut résoudre l'erreur. Généralement, il se produit des erreurs car la modification viole une contrainte du serveur ou parce qu'un enregistrement a été modifié avec une autre application après sa lecture par le fournisseur, mais avant la demande de l'ensemble de données client d'appliquer la mise à jour.

Les erreurs de mise à jour peuvent être traitées par le fournisseur d'ensemble de données ou l'ensemble de données client. Lorsque le fournisseur fait partie d'une application multiniveau, il doit gérer toutes les erreurs de mise à jour qui ne nécessitent pas d'interaction avec l'utilisateur pour être résolues. Quand le fournisseur ne peut résoudre une condition d'erreur, il stocke une copie temporaire de l'enregistrement posant problème. Quand le traitement des enregistrements est terminé, le fournisseur renvoie à l'ensemble de données client le nombre d'erreurs ayant eu lieu et copie les enregistrements non résolus dans un paquet de données résultat qu'il renvoie à l'ensemble de données client pour que celui-ci termine la réconciliation.

Les gestionnaires d'événements de tous les événements du fournisseur reçoivent les mises à jour sous la forme d'un ensemble de données client. Si le gestionnaire d'événement ne traite que certains types de mise à jour, vous pouvez filtrer l'ensemble de données en vous basant sur le type de mise à jour des enregistrements. Le filtrage des enregistrements évite au gestionnaire d'événement de parcourir des enregistrements qu'il n'utilise pas. Pour filtrer l'ensemble de données client d'après le type de mise à jour de ses enregistrements, définissez sa propriété StatusFilter.

Remarque :  Les applications doivent proposer des fonctions supplémentaires quand les mises à jour sont dirigées vers un ensemble de données qui représente plusieurs tables.

Rubriques

Voir aussi