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

XMLRAD Discussion :

HttpInvoke et transaction SGBD


Sujet :

XMLRAD

  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Par défaut HttpInvoke et transaction SGBD
    Bonjour,

    Je souhaite modifier une donnée en Base de donnée, puis la relire par une autre application appelée par HttpInvoke. Le problème est de faire un Commit sur la transaction avant l'invoke.

    XMLRAD 8

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    520
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 520
    Par défaut
    Dans la prochaine version d'XMLRAD, on pourra effectuer un Commit au moment de son choix lors du traitement du XMLGram (par description et non par code).

    Jusqu'à présent, pour ce faire, on est obligé de prendre la main en code dans le BeforeInstruction de ton Invoke, ou bien dans le AfterInstruction de l'instruction qui le précède (le Invoke).
    Voici un exemple en Delphi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var
      CurrDB: TDacDatabase;
    begin
      CurrDB := XMLCollection.GetDatabaseComponent('MyDatabase');
      CurrDB.Commit;
      CurrDB.StartTransaction;
    end;
    Il faut juste récupérer l'instance de la connexion DB telle que tu l'as nommée dans tes "Datasources", la commiter puis la relancer pour les éventuelles XMLInstructions suivantes.

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Par défaut
    J'ai essayé le code précédent. Un "Rollback" fonctionne correctement mais le "Commit" reste sans effet.

  4. #4
    Membre éclairé Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Par défaut
    Hello,
    Tu as certainement commencé une autre transaction plus tôt. Vérifie l'empilement de tes transactions. Autrement tu peux faire un ForceCommit, mais attention aux "effets secondaires"

    Michael

  5. #5
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 34
    Par défaut
    Je n'ai fait aucune transaction particulière et laisse XMLRAD gérer. Je pense qu'une seule transaction débute à l'exécution du service et se termine par un commit ou rollback si le service se termine correctement ou sur une exception.

    D'ailleurs le Rollback provoque l'effet attendu.

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

Discussions similaires

  1. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  2. [SGBD]Evaluation du temps d'une transaction
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 26/10/2004, 17h53
  3. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08
  4. Réponses: 2
    Dernier message: 30/05/2002, 08h54

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