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 :

Problème avec les transactions


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 113
    Points
    113
    Par défaut Problème avec les transactions
    Bonjour,

    Je suis entrain de créer une application sous réseau avec delphi et le SGBD firebird!
    Je fais de recherches sur l'utilisation de transactions mais je n'ai pas trouvé la bonne démarche à suivre
    1. Déjà je ne sais pas si je dois utiliser autoCommit à true ou à false!?

    2. J'ai essayé avec AutoCommit à false mais à chaque fois que ce code est executé,le Dataset ouvert se ferme? je ne sais pas pourquoi comme si il fait table.close!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Try
          Commit;
      except
          RollBack ;
     end;

  2. #2
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Je ne connais pas tes composants mais avec les composant Zoes, voici la procedure que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TDM.CommitData;
    begin
      try
        DB.Commit;
      except
        DB.RollBack;
        MessageDlg('Les informations n''ont pas été enregistrées ! ', mtError, [mbOK], 0);
      end;
    end;
    Est ce que tu programmes avec du SQL ou directement sur tes tables, façon BDE ? Parce qu’avec du SQL, je ne vois pas qu'est ce qui fermerai ton DataSet.
    Donnes plus de précision à ton problème sinon envoies le code.

    Bonne journée.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 113
    Points
    113
    Par défaut
    Merci Monsieur Akli_Agha pour vos réponses

    Effectivement je programme directement sur les tables (Façon BDE)
    En faite pour le moment je pense que j'ai trouvé une solution au lieu de faire un Commit ou rolback j'utilise CommitRetaining ou RollbackRetaining. avec cette methode le dataset ne se ferme pas!

  4. #4
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Bon courage.
    Mais la programmation façon BDE est obsolète de nos jours. Il faut vraiment penser à prendre le virage et t'orienter vers le SQL qui permet bien la gestion réseau (Client/serveur) et la migration vers d'autres SGBD !

    SQL, il faut vraiment y penser !

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 113
    Points
    113
    Par défaut
    Bonjour,
    Finalement je suis toujours avec les transactions Et les eventAlert
    Mon probleme cette fois ci c'est que quand j'ai plusieurs events (qui font le refresh pour des tables différentes) dans la même transaction l'application se plante et m'affiche le message suivant Impossible d'effectuer cette opération sur un ensemble de données fermées
    Donc Est ce que je peux englober plusieurs eventAlert dans une meme transaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DM.Transaction.CommitRetaining; //Start transaction
    Try
    Mise à jour TABLE1;
    TABLE1.post; // avec un event qui se declenche pour faire le refresh de table1
    Mise à jour TABLE2;
    Table2.post;  //avec un event qui se declenche pour faire le refresh de table2
     DM.Transaction.CommitRetaining;
    except
    DM.Transaction.RollbackRetaining;
    Merci pour votre aide

    Mina24.

  6. #6
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Oui, bien sûr que tu peux faire plusieurs choses dans une transaction !

    Ton message veut dire ceci :
    Tu es en train de faire une action (Edit, Post, Delete, Locate, etc...) sur une tables qui n'est pas ouverte !

    Donc tu vérifies les action sur tes tables et tu trouveras certainement la table qui est restée fermée !

    D'aprés ce que je vois, tu es toujours restée avec les vieilles TTables !

    Bon courage.

  7. #7
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 113
    Points
    113
    Par défaut
    Bonjour,

    Je suis désolée pour cette absence
    En faite J'essaye de passer à la méthode requêtes Je vois que c'est mieux comme vous l'avez dit

    Merci à tous pour votre aide

    Mina24

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

Discussions similaires

  1. problème avec Les transactions
    Par mina24 dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 27/02/2012, 08h55
  2. Problème avec les transactions imbriquées
    Par StringBuilder dans le forum Développement
    Réponses: 17
    Dernier message: 22/02/2012, 15h52
  3. SQL Server 2005: Problème avec les transaction logs
    Par n8ken dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/03/2008, 15h42
  4. probléme avec les transaction
    Par amazircool dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/12/2007, 16h44
  5. problème avec les transactions
    Par Invité dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/07/2005, 11h43

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