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

WinDev Discussion :

Problème d'annulation de transaction [WD19]


Sujet :

WinDev

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut Problème d'annulation de transaction
    Bonjour,

    J'ai un problème sur une appli windows installée chez un client.
    Je précise que cette appli utilise HFSQL.

    L'erreur est provoquée par une transaction qui n'aurait pas abouti et qui doit être annulée.

    Message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Le champ 'TABLE_Rampants' n'a pas pu s'initialiser, car il a rencontré l'erreur HFSQL suivante :
    =============================
    Impossible d'accéder à l'enregistrement numéro <1> du fichier <C:\ECS\Easy Energie\DPE_Toits.FIC>. Une transaction ayant accédé à cet enregistrement a échoué et la transaction n'a pas encore été annulée. Vous devez annuler la transaction avant de pouvoir accéder à cet enregistrement. La transaction sera annulée lors du prochain HTransactionDébut. Vous pouvez aussi annuler la transaction par HTransactionAnnule.
    Pour tenter de remédier au problème et prévenir le risque qu'il se reproduise, j'avais l'intention d'ajouter la fonction HTransactionAnnule() dans le code d'initialisation de l'application ?

    Est-ce que c'est la solution ou comment traiter ce problème svp ?

    Merci

  2. #2
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Par défaut Ces fameuses transactions, je ne veux pas vivre avec, je ne peux plus vivre sans lol
    Salut Lolo!

    Bonne question, j'ai toujours été confronté à ce genre de souci, avec les coupures d'électricité intempestives qui sont notre quotidien

    Récemment, dans le code d'ouverture de mes fichiers au démarrage de l'appli (j'ouvre chaque fichier manuellement), j'ai utilisé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	SI ExceptionInfo(errCode)=70034 ALORS	// transaction échouée
    					HTransactionAnnule(gsJournalTransaction)
    					Info("Echec Transaction précédente annulée!")
    					ExceptionActive()
    				FIN
    Je ne dirais pas que cela s'est définitivement arrêté, mais cela arrive beaucoup moins souvent!

    Et lorsque cela arrive et que le htransactionannule() ne fonctionne pas je suis obligé de supprimer par programmation, les fichiers se trouvant dans le dossier _TRS du dossier de base données (cas HF/CS)

    BDD\__TRS\MONAPPLI

    Bon courage...

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut Merci de ta réponse Zouzoukha
    Je précise que dans mon cas, mon application ne fonctionne qu'en local, pas de client/serveur donc.
    J'ai un peu de mal à comprendre le problème car je n'établis pas de connexion tel que la doc Windev le décrit.

    La fonction HTransactionAnnule() sans préciser le nom de connexion, fonctionnera t'elle ?
    De mon point de vue, oui. J'ai testé un "info(HTransactionAnnule())" et j'obtiens "1" en retour donc cela semble signifier que la fonction a agit non ?

    Comment procèdes concrètement tu quand la fonction HTransactionAnnule() ne fonctionne pas ?
    Est ce que le dossier _TRS existe dans mon cas puisque que je n'utilise pas de CS ?

    Merci de ton aide

  4. #4
    Membre émérite
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Par défaut
    Salut!

    Attention, regarde bien l'aide de Htransactionannule() => http://doc.pcsoft.fr/fr-FR/?3044001&...nsactionAnnule

    En local, la syntaxe est différente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Résultat> = HTransactionAnnule([<Nom et chemin du fichier de transaction>])
    En gros c'est un fichier créee au début de la transaction sur le poste local et qui sera supprimée en fin de transaction.

    Même étant en HF/CS, j'utilise la méthode en local, car les fichiers concernant la transaction (sur le serveur) seront quand même bloqués pendant l'opération.

    Une autre piste serait de voir du côté de la Htransactioninterrompue() => http://doc.pcsoft.fr/fr-FR/?3044026&...ionInterrompue

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 372
    Par défaut Merci Zouzoukha, tu es un chef ;-)
    J'ai trouvé cela dans la doc que tu m'as indiquée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI HTransactionInterrompue("") = Vrai ALORS
            HTransactionAnnule()
    FIN
    Cela me plait bien, c'est simple et radical (du moins je l'espère).

    Merci et au plaisir

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

Discussions similaires

  1. Problème d'annulation d'InputBox
    Par cciocc dans le forum Access
    Réponses: 4
    Dernier message: 18/07/2006, 15h30
  2. Annuler une transaction (rollback) après un commit ?
    Par Boulotaur2024 dans le forum Débuter
    Réponses: 1
    Dernier message: 18/04/2006, 20h31
  3. Annuler des transactions
    Par rollon dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/10/2005, 18h20
  4. Annuler une transaction
    Par pittacos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/08/2005, 09h30
  5. Annuler des transactions
    Par sgire dans le forum ASP
    Réponses: 2
    Dernier message: 04/05/2004, 09h31

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