Utilisation de transactions locales

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation des transactions avec le BDE - 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.

Le BDE supporte les transactions locales sur les tables Paradox, dBASE, Access et FoxPro. D'un point de vue programmation, il n'y a pas de différence pour vous entre une transaction locale et une transaction sur un serveur de base de données distant.

Remarque :  Quand vous utilisez des transactions avec des tables locales Paradox, dBASE, Access et FoxPro, définissez TransIsolation à tiDirtyRead au lieu d'utiliser la valeur par défaut tiReadCommitted. Une erreur BDE est renvoyée si TransIsolation est définie à une valeur autre que tiDirtyRead pour les tables locales.

Quand une transaction est démarrée sur une table locale, les mises à jour effectuées sur la table sont consignées. Chaque enregistrement du journal contient l'ancien tampon d'un enregistrement. Quand une transaction est active, les enregistrements mis à jour sont verrouillés jusqu'à ce que la transaction soit validée ou annulée. En cas d'annulation, les anciens tampons d'enregistrements sont appliqués au lieu des nouveaux, afin de les restaurer dans leur état antérieur.

Les transactions locales sont plus limitées que les transactions sur les serveurs SQL ou les pilotes ODBC. En particulier, les restrictions suivantes s'appliquent aux transactions locales :

  • La récupération automatique en cas de problème n'est pas fournie.
  • Les instructions de définition de données ne sont pas supportées.
  • Les transactions ne peuvent pas être effectuées sur des tables temporaires.
  • Le niveau TransIsolation doit être défini à tiDirtyRead.
  • Pour Paradox, les transactions locales ne peuvent être effectuées que sur les tables comportant des index valides. Il est impossible d'annuler les modifications sur des tables Paradox qui n'ont pas d'index.
  • Un nombre limité d'enregistrements peut être verrouillé et modifié. Avec les tables Paradox, vous êtes limité à 255 enregistrements. Avec dBASE la limite est de 100.
  • Les transactions ne peuvent être effectuées sur le pilote ASCII BDE.
  • Fermer un curseur sur une table durant une transaction annule celle-ci sauf si :
  • Plusieurs tables sont ouvertes.
  • Le curseur est fermé sur une table dans laquelle aucune modification n'a été effectuée.

Voir aussi