Application des mises à jour en mémoire cache avec une base de données

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.

Pour appliquer les mises à jour présentes en mémoire cache à un ou plusieurs ensembles de données dans le contexte d'une connexion de base de données, appelez la méthode ApplyUpdates du composant base de données. Le code suivant applique les mises à jour à l'ensemble de données CustomersQuery en réponse à un événement clic de bouton :

Delphi :

procedure TForm1.ApplyButtonClick(Sender: TObject);
begin
  // for local databases such as Paradox, dBASE, and FoxPro
  // set TransIsolation to DirtyRead
  if not (Database1.IsSQLBased) and not (Database1.TransIsolation = tiDirtyRead) then
    Database1.TransIsolation := tiDirtyRead;
  Database1.ApplyUpdates([CustomersQuery]);
end;

C++ :

void __fastcall TForm1::ApplyButtonClick(TObject *Sender)
{
  // for local databases such as Paradox, dBASE, and FoxPro
  // set TransIsolation to DirtyRead
  if (!Database1->IsSQLBased && Database1->TransIsolation != tiDirtyRead)
    Database1->TransIsolation = tiDirtyRead;
  Database1->ApplyUpdates(&CustomersQuery,0);
}

La séquence ci-dessus écrit les mises à jour en mémoire cache dans la base de données dans le contexte d'une transaction générée automatiquement. En cas de succès, elle valide la transaction, puis les mises à jour présentes en mémoire cache. En cas d'échec, elle annule la transaction et laisse le cache de mise à jour inchangé. Dans ce dernier cas, vous devez gérer les erreurs de mises à jour en mémoire cache par le biais de l'événement OnUpdateError de l'ensemble de données. Pour plus d'informations sur la gestion des erreurs de mise à jour, voir Gestion des erreurs de mise à jour en mémoire cache.

Le principal avantage à appeler la méthode ApplyUpdates d'un composant base de données est que vous pouvez mettre à jour tous les composants ensemble de données associés à la base de données. Le paramètre de la méthode ApplyUpdates d'une base de données est un tableau de TDBDataSet. Par exemple, le code suivant applique les mises à jour pour deux requêtes :

Delphi :

if not (Database1.IsSQLBased) and not (Database1.TransIsolation = tiDirtyRead) then
  Database1.TransIsolation := tiDirtyRead;
Database1.ApplyUpdates([CustomerQuery, OrdersQuery]);

C++ :

if not (Database1.IsSQLBased) and not (Database1.TransIsolation = tiDirtyRead) then
  Database1.TransIsolation := tiDirtyRead;
Database1.ApplyUpdates([CustomerQuery, OrdersQuery]);

Voir aussi