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

Access Discussion :

Utilisation des transactions


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Points : 32
    Points
    32
    Par défaut Utilisation des transactions
    Bonjour à tous,

    J'ai développé un formulaire qui sert à importer les données provenant d'une table ACCESS de factures provenant d'un ancien système et qui redistribue les données vers les tables de factures d'un nouveau système. Dans la table d'origine, les données formant l'entête de la factue se retrouve dans le même enregistrement de la table d'importation. Par contre, plusieurs enregistrements de la table d'importation peuvent représenter plusieurs lignes de détails d'une même facture. Dans le nouveau système, la facture est répartie sous 2 tables (une d'entête et l'autre des lignes de détails de facture). J'ai aussi une table des rejets qui me sert à inscrire les anomalies que je pourrais retrouver lors de l'importation des données (ex: le prix est manquant, #de facture manquant, etc). Lors de l'inscription d'un rejet, il peut arriver que la création de la facture soit annulée ou que l'on importe tout de même les données car le rejet ne cause pas vraiment un problème dans l'intégrité de données mais sert plutôt de warning à l'usager. La sévérité du rejet peut donc entrainer ou non l'annulation de la création de factures.

    Ma procédure qui importe les données fonctionne bien. J'utilise une trasactions (avec BeginTrans, Commit, Rollback) avant d'importer les données de la table d'importation.

    Par contre je rencontre un problème. Ma question : est-il possible de faire un rollback mais qu'il ne s'appliquent pas à toutes les modifications qui ont été faites à la base de données depuis le BeginTrans ? Voici la raison : Lorsque j'importe les données, je commence à créer l'entête de facture (si toutes les informations sont OK) et je passe ensuite aux lignes de détails. Si je découvre des anomalies dans la ligne de détails de facture, je voudrais être en mesure de faire un rollback pour annuler la création de mon entête de facture que je viens de créer (celà fonctionne correctement) ET que les enregistrements incrits précédemment dans la table de rejets soient conservées. Car présentement, si j'annule la création de la facture, les rejets qui auraient pu être inscrits depuis le Begin Trans sont annulées. Comment puis-je éviter cela ?

    Merci à l'avance pour vos réponses.

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Interessant ton cas...
    En premièer réflexion, j'essaierai de faire les inscriptions dans la table de rejet dans un espace non couvert par la transaction...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim WrkTrans as Workspace
    Dim WrkRejets as Workspace
     
    set wrkTrans = DBENgine(0)
    set wrkRejets = DBEngine.CreateWorkspace("wkRejets", "Admin", "")
     
     
    wrkTrans.BeginTrans
     
    ....

Discussions similaires

  1. Problème avec l'utilisation des transactions
    Par devvanjier dans le forum Windows Forms
    Réponses: 5
    Dernier message: 25/05/2011, 17h03
  2. [PDO] Utilisation des transactions
    Par anrow dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/03/2010, 03h25
  3. [MSI] utilisation des transaction multiples
    Par oupslelapin dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 16/02/2009, 17h11
  4. Utilisation des transactions
    Par choubak dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/07/2007, 14h49
  5. Réponses: 2
    Dernier message: 27/06/2007, 00h37

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