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

 Delphi Discussion :

Probleme de Commit


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Par défaut Probleme de Commit
    Bonjour,
    J'ai un souci pour réaliser un Commit après un Update sur une base Firebird ; mon update fonctionne correctement car quand je sors de mon appli et que je reviens je constate que la requette a fait son boulot.j'utilise des TIBquery et Donc des TibTransaction , voici le code:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    var
    Qry:TIBquery;
    no_facture,mt_ttc:string;
    _database:TIBDatabase;
    Transaction1:TIBTransaction;
     
    begin
     
     
     MessageDlg('test2', mtWarning, [mbOK], 0);
     DMTactile.NewQry(Qry);
     
     with qry do
             begin
              if Active then close;
             SQL.Clear;
             SQL.Add('update ENTETES_RESA set CDE_ACTIF= ''N'' '
             + ' where cde_codresa = :codresa and cde_noenreg = :noenreg and cde_nbnuits =:nbnuits ') ;
                  ParamByName('codresa').AsFloat := codresa_;
                  ParamByName('noenreg').Asinteger := noenreg_;
                  Parambyname('nbnuits').AsInteger := nbnuits_ ;
             //ParamByName('cde_actif').AsString:=tactif;
             ExecSQL;
             MessageDlg('Essai commit', mtWarning, [mbOK], 0);
              Transaction1.Commit;
              //Commit;
             Close;
     
     
     end;
             DMTactile.DestroyQRY(Qry)
     
    end;
    j'ai un message m'indiquant une violation d'accés.
    Merci pour votre aide .

    Ah au fait est ce que quelqu'un peut me dire comment ajouter un avatar à mon profil avec une image perso.

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Sans connaitre le système de transaction des composants IB (je n'ai pas eu l'occasion de m'y mettre).

    1- Je ne vois nul part de transaction.begin, quand on veut utiliser les transactions il faut bien la commencer.

    Exemple avec Ado qui doit être similaire en mettant les bonnes procédures
    Code Delphi : 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
     
    AdoConnection1.BeginTrans;
     
    With AdoQuery do
    begin
      // Remplissage de la requete update
     
      Try
        ExecSQL;
        AdoConnection1.CommitTrans;
      Except on E:Exception do
        begin
          AdoConenction.rollbackTrans;
          Showmessage('Erreur :' + E.Message);
        end;
      end;
    end;

    2- Le composant TIBTransaction n'est pas crée alors qu'il a l'air d'être dynamique.

    3- Le messagedlg est placé avant le commit donc tu ne sais pas encore s'il a fonctionné ou non.

    4- est ce bien utile d'utiliser une transaction ici. En général on utilise les transactions quand il y a plusieurs actions qui se font séquentiellement et qui nécessite de ne pas être interrompu.
    Dans ton cas, tu à l'air de ne faire qu'une requête donc , la transaction n'est pas utile

    PS: Pour l'avatar c'est à 100 messages (voir dans les règles du forum pour confirmation), mais attention flood et réponse inutile ne sont pas tolérés.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre confirmé Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Par défaut
    Merci , Rayek , mais ca marche pô , merci malgré tout c sympa....

  4. #4
    Membre confirmé Avatar de djeckelle
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2004
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2004
    Messages : 87
    Par défaut
    Salut,

    j'ai un message m'indiquant une violation d'accés.
    Pourrais tu nous en dire un peu plus sur ton message. En plus, je vois que tu déclares un TIBDatabase et un TIBTransaction que nu n'instancies pas après...Peux tu aussi envoyer ton code après suggestions de Rayek.

    Djeckelle

  5. #5
    Membre confirmé Avatar de jodan33
    Homme Profil pro
    DEveloppeur interoperabilité
    Inscrit en
    Mars 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : DEveloppeur interoperabilité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 95
    Par défaut
    Salut,
    Bon , voici le code :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    var
    Qry:TIBquery;
    no_facture,mt_ttc:string;
     
    Transaction1:TIBTransaction;
     
    begin
     
    MessageDlg('Req Up date', mtWarning, [mbOK], 0);
    //Transaction1.DefaultDatabase.Open;
     
     DMTactile.NewQry(Qry);
     Transaction1.StartTransaction;
     with qry do
             begin
              if Active then close;
             SQL.Clear;
             SQL.Add('update ENTETES_RESA set CDE_ACTIF= ''N'' '
             + ' where cde_codresa = :codresa and cde_noenreg = :noenreg and cde_nbnuits =:nbnuits ') ;
                  ParamByName('codresa').AsFloat := codresa_;
                  ParamByName('noenreg').Asinteger := noenreg_;
                  Parambyname('nbnuits').AsInteger := nbnuits_ ;
             //ParamByName('cde_actif').AsString:=tactif;
             ExecSQL;
             Transaction1.Commit;
             MessageDlg('Essai commit', mtWarning, [mbOK], 0);
             Close;
             end;
     DMTactile.DestroyQRY(Qry);
     
    end;
    J'ai un message : " Violation d'accés à l'adresse 0592BA2F dans le module tac.dll . Lecture de l'adresse 00000054.
    et je ne passe pas dans la boite de dialogue 'Essai Commit'.
    Merci pour vos remarque qui m'aide à progresser, a+

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Billets dans le blog
    1
    Par défaut
    Si tu nous as fournis ton code complet alors le problème est que tu n'instancies pas ton objet Transaction1 comme le soulignait djeckelle.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Citation Envoyé par jodan33 Voir le message
    Merci , Rayek , mais ca marche pô , merci malgré tout c sympa....
    Veuillez nous excuser mais le systeme boule de crystal 1.0 est en panne actuellement, pour un meilleur service veuillez donner plus de détails

    Soit plus précis, un "çà marche pas", ne va pas nous permettre de t'aider plus.

    Qu'est ce qui ne fonctionne pas ?
    Quelle est le message d'erreur ?
    Quelles sont les modifications que tu as fait dans le code ? (Avec le bout de source qui va bien et des commentaires "//" positionnés juste avant l'erreur).
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. Probleme de commit
    Par anis.oracle dans le forum Forms
    Réponses: 1
    Dernier message: 03/09/2009, 13h55
  2. cpan: problème de commit avec o conf
    Par iscab dans le forum Modules
    Réponses: 1
    Dernier message: 20/11/2006, 15h11
  3. [debutant]probleme de commit
    Par julien31009 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 14/11/2006, 11h21
  4. [Oracle8i][PL/SQL]Probleme de commit ou non ?
    Par Drizzt [Drone38] dans le forum Oracle
    Réponses: 11
    Dernier message: 09/08/2006, 10h10

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