IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Gestion des transactions avec les composants DOA


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut Gestion des transactions avec les composants DOA
    Bonjour,
    j'aimerai connaître la meilleure méthode afin de contrôler les commit et rollback sur une transaction de mise à jour afin par exemple de n'effectuer le commit final que si toutes les mises à jour ont été effectuées correctement.
    J'utilisais auparavant le BDE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Database.Starttransaction;
    Try
      ....
          post; (mise à jour 1)
    ...
          post; (mise à jour 2)
     
          Database.commit;
    except
           Database.Rollback;
    end;
    J'utilise donc maintenant les composants DOA (TOraclesession, TOracledataset).
    Merci d'avance pour toutes vos suggestions.
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  2. #2
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Je pense avoir trouver une réponse dans l'aide de Delphi, je vous la publie (apparemment je fais partie des rares personnes à utiliser DOA : )
    Citation Envoyé par Aide Delphi

    procedure ApplyUpdates(const DataSets: array of TOracleDataSet; Commit: Boolean);

    Description

    Applies the cached updates of the datasets to the database. If a dataset is a master in a master/detail relation, the updates in all detail datasets will be applied as well. Each dataset must have its CachedUpdates property set to True.

    If the Commit parameter is True, the changes will also be committed. If the Commit parameter is False, the updates will not be committed so that you can perform some additional actions before calling CommitUpdates or Rollback:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    procedure TDeptForm.ApplyButtonClick(Sender: TObject);
     
    begin
     
      // Apply the changes and do not yet commit
     
      Session.ApplyUpdates([DeptDataSet], False);
     
      // Perform some checks and commit or rollback accordingly
     
      if DeptEmpValid then
     
        Session.CommitUpdates([DeptDataSet])
     
      else
     
        Session.Rollback;
     
    end;
    A remarquer que la propriété Cachedupdates du Oracledataset doit être à true, la transaction est gérée par le TOraclesession (=Session dans l'exemple).
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  3. #3
    Membre confirmé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Points : 475
    Points
    475
    Par défaut
    Bonjour

    t'es pas le seul à utliser les DOA

    Sauf que j'ai une question, les transactions avec SqlServer sont difficile alors qu'avec les DOA un simple commit suffi, est ce qu'il y'a qlq chose qui m'échappe ou c'est le cas ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Piloter des procédures avec les composants DOA
    Par Henri-gp dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2011, 23h37
  2. Gestion des piles avec les classe
    Par souad21 dans le forum C++
    Réponses: 1
    Dernier message: 24/10/2007, 06h10
  3. Gestion des fenêtres avec les menus
    Par Death83 dans le forum C++Builder
    Réponses: 23
    Dernier message: 15/12/2006, 10h22
  4. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo