Application des mises à jour BDE en mémoire cache

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation du BDE pour placer en mémoire cache les mises à jour - Index


Remarque : Le moteur de base de données Borland (BDE, Borland Database Engine) a été déprécié. Il ne sera donc pas amélioré. Par exemple, le BDE ne prendra jamais en charge Unicode. Vous ne devriez pas entreprendre de nouveaux développements avec BDE. Prévoyez plutôt de migrer vos applications de bases de données existantes de BDE vers dbExpress.

L'application des mises à jour est un processus en deux phases qui doit se produire dans le contexte d'une transaction d'un composant base de données, afin que votre application puisse gérer facilement les erreurs. Pour plus d'informations sur la gestion des transactions avec les composants base de données, voir Gestion des transactions.

Quand vous appliquez des mises à jour sous le contrôle d'une transaction de base de données, les événements suivants prennent place :

  1. Une transaction de base de données commence.
  2. Les mises à jour en mémoire cache sont écrites dans la base de données (phase 1). Si vous le fournissez, un événement OnUpdateRecord est déclenché pour chaque enregistrement écrit dans la base de données. Si une erreur survient quand un enregistrement est appliqué à la base de données, l'événement OnUpdateError est déclenché si vous en fournissez un.
  3. La transaction est validée si les opérations d'écriture sont réussies ; elle est annulée dans le cas contraire,
Etat d'écriture Transaction

Succès

Les modifications de la base de données sont validées, ce qui termine la transaction de base de données.

Echec

Les modifications de la base de données sont annulées, ce qui termine la transaction de base de données.


Remarque :   L'application des mises à jour en mémoire cache est particulièrement difficile quand vous travaillez avec plusieurs ensembles de données en liaison maître/détail, car l'ordre dans lequel vous appliquez les mises à jour à chaque ensemble de données est significatif. Normalement, vous devez mettre à jour les tables maître avant les tables détail, sauf lors de la gestion des enregistrements supprimés, où cet ordre doit être inversé. En raison de cette difficulté, il est vivement recommandé d'utiliser des ensembles de données client lors de la mise en mémoire cache des mises à jour d'une fiche maître/détail. Les ensembles de données client gèrent automatiquement l'ordre des opérations dans les relations maître/détail.


Avertissement : Pour appliquer les mises à jour depuis une procédure stockée ou une requête SQL qui ne renvoie pas un ensemble de résultats dynamique, vous devez utiliser TUpdateSQL pour spécifier comment effectuer les mises à jour. Pour les mises à jour de jointures (requêtes impliquant plusieurs tables), vous devez fournir un objet TUpdateSQL object for each table involved, and you must use the OnUpdateRecord event handler to invoke these objects to perform the updates. See Utilisation d'objets mise à jour pour mettre à jour un ensemble de données for details.

Voir aussi