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 :

Transaction HF et requête SQL


Sujet :

WinDev

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut Transaction HF et requête SQL
    Hello, bonjour à tous!

    Une question vraiment bête, mais je me la pose depuis un certain temps alors

    Lorsqu'une transaction a échoué sur un fichier, est ce que cela peut empêcher une requête HF ou SQL sur le fichier concerné?

    Dans un second temps Y aurait t-il un moyen d'annuler automatiquement toutes les transactions échouées à chaque démarrage de l'appli.

    Un client a juré de pourrir la vie : après un an de bagarre il a finalement décidé d'acheter un onduleur, mais malgré la coupure d'électricité il travaille jusqu'à vider l'onduleur

    Merci d'avance

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    hum bonsoir à tous!

    C'est quand meme terrible de devoir lancer le Centre de controle HF pour libérer un enregistrement en transaction

    N'y a t-il pas une exception pour la transaction?
    Quand je fais un houvre(MonFichier) je n'ai pas d'erreur,
    Mais lorsque je fait un POUR TOUT MonFichier, j'ai l'erreur de transaction sur un numéro d'enregistrement.

    Y a t-il une possibilité d'intercepter cette erreur avant le déclenchement?

    Merci d'avance

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 335
    Points : 3 844
    Points
    3 844
    Par défaut
    Bonjour,

    Est-ce que HTransactionAnnule(..) ne ferait pas l'affaire ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    si c'est une appli monoposte :
    HTransactionListe et HAnnuleTransaction sur le résultat. Si c'est en multiutilisateurs, c'est plus compliqué car il faut identifier les transactions qui ne sont plus actives .... Normalement le flag à 1 devrait suffire mais on peut avoir des surprises.

    à bientôt,

    nicolas

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Merci les amis!
    Je vais regarder du coté de HtransactionListe() et je suis en multi utilisateurs!

    J'avais déjà essayé en vain Htransactiondebut() et htaransactionannule() à l'init du projet mais sans succès!

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!
    Je ne m'en sors pas du tout avec ces fichus transactions...
    Si seulement on pouvait intercepter l'erreur de transaction
    En effet au démarrage de l'appli je fait systématiquement sur tous les fichiers un QUAND EXCEPTION DANS Houvre(MonFichier)
    et je n'ai aucune erreur de transaction alors que le fichier est bien en transaction!

    Dans l'init du projet j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gsJournalTransaction est une Chaine = CompleteRep(Frepexe)+"Transaction.trs"
    HtransactionDebut(gsJournalTransaction) est donc utilisé partout dans le projet en cas de mise en place d'une transaction.

    Du coup je pense (à tort?) que les fichiers en transactions concernant chaque poste client se trouve sur le poste lui-meme.

    Bref pour résumer, Houvre(MonFichierEnTransaction) ne déclenche pas d'erreur de transaction, mais en parcourant ou en effectuant un HLitRecherche() l'erreur est déclenchée!

    Vais-je etre obligé de parcourir chacun de mes fichiers du projet pour déclencher cette satanée erreur de transactions?

    Merci encore une fois pour le temps que vous prenez

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Bonsoir à tous!

    Ces fichues transactions veulent me pourrir la vie

    Bon heureusement que j'avance doucement et pas à reculons.

    Récap :

    - Je viens de me rendre compte que même une requête sur un fichier HF en transaction interrompue provoque l'exception.
    La bonne nouvelle est que j'arrive à intercepter avec le numéro d'exception 70034.

    ExceptionInfo(errNumEnr) ne renvoie rien dans le cas de la requete!

    Plusieurs problèmes :

    - comment intercepter cette erreur dans toutes mes fenêtres afin de donner un message urgent de transactions bloquées et éviter ainsi le crash? (120)

    - Pour être certain de corriger tous mes fichiers en transactions, le mieux serait de le faire au démarrage de l'application, mais est-il vraiment raisonnable de parcourir tous les enregistrements de chaque fichier pour pouvoir savoir lequel est en transaction interrompue? (déclenchement de l'exception)

    - Ne connaissant pas le numéro d'enregistrement à problème (pour les raisons citées plus haut), je ferais par conséquent un HtransactionLibère(Fichier) mais pour cela je dois m'assurer qu'il n'y a qu'un seul utilisateur connecté à la base! (comment avoir cette info?)

    Que de questions... Désolé encore une fois mais toute aide serait la bienvenue

Discussions similaires

  1. [AC-2003] Requête sql avec méthode DoCmd.Runsql bloqué dans une transaction
    Par rana dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/03/2010, 13h20
  2. Transaction sur Requêtes Entities et Requêtes SQL pures
    Par Arnard dans le forum Accès aux données
    Réponses: 1
    Dernier message: 20/04/2009, 13h38
  3. [Requête] SQL SERVER 2000 / Transact SQL
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/09/2007, 17h56
  4. Réponses: 1
    Dernier message: 08/08/2007, 11h26
  5. Utilisation d'une fonction Transact-SQL ds une requête SQL
    Par Fl0ppeur dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/02/2006, 13h42

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