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

Powerbuilder Discussion :

[PowerBuilder] Faire un COMMIT à la fin du travail


Sujet :

Powerbuilder

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 50
    Points : 46
    Points
    46
    Par défaut [PowerBuilder] Faire un COMMIT à la fin du travail
    Bonjour

    Je suis nouveau en PB et je me retrouve face à un problème.

    J'ai 2 datawindows :
    1) une grid datawindow en lecture seule (A)
    2) une freeform datawindow pouvant être mise à jour (B)

    Quand je clique sur une ligne de A, des informations pouvant être mises à jour concernant la ligne sélectionnée sont affichée dans B.

    Je voudrais pouvoir faire un COMMIT de mes modifications uniquement quand je clique sur le boutton Ok de ma fenêtre.
    Par exemple :
    a) Je clique sur la ligne 1 de A
    b) Je met à jour des informations dans B pour la ligne 1
    c) Je clique sur la ligne 3 de A
    d) Je met à jour des informations dans B pour la ligne 3
    e) Je clique sur la ligne 4 de A
    f) Je met à jour des informations dans B pour la ligne 4
    g) Je clique sur le boutton Ok pour faire mon COMMIT. Ce n'est qu'à ce moment que je veux que mes informations soient stockées dans ma base de données. Le bouton Annuler quant à lui fera un ROLLBACK.

    J'ai essayé de plusieurs manières mais pour l'instant je n'arrive qu'à faire des COMMIT à chaque clique que je fais sur une ligne de A, alors que je veux stocker mes changements quelque part dans un buffer et faire mon COMMIT uniquement à la fin...

    Quelqu'un peut me dire comment faire svp :

    Merci d'avance,

  2. #2
    civ
    civ est déconnecté
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    C'est un cas d'école de master-detail.

    la A doit gérer les accès à la base de donnée (retrieve, update)
    Leur structure de donnée (columns spécifications) doivent être identiques

    utilise la méthode de partage de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dw_A.ShareData ( dw_B )
    les modifications faites faites dans l'une seront automatiquement prise en compte dans l'autre (les buffers sont partagés).

    tu ne dois faire ton update qu'une seule fois lorsque tu clicke sur ton bouton de sauvegarde (sinon tu aura des problèmes de verrous).
    tu COMMIT après tes tests d'erreur.

    Ensuite tu n'as plus qu'a gérer ton évènement rowfocuschanged dans le control de la dw_A pour sélectionner la bonne ligne dans la dw_B. (scrollToRow(...) ou setfilter(...) & filter())

    bonne chance
    ___
    CiV

Discussions similaires

  1. Incapable de faire un commit
    Par robert_trudel dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 14/09/2006, 02h04
  2. Faire un total en fin de colonne sous excel
    Par Daniel MOREAU dans le forum Access
    Réponses: 3
    Dernier message: 10/06/2006, 14h30
  3. [VBA DAO] faire un commit d'une table
    Par Reloadx dans le forum Access
    Réponses: 5
    Dernier message: 28/03/2006, 08h18
  4. faire un commit que sur un petit partie du code
    Par schnourf dans le forum Oracle
    Réponses: 4
    Dernier message: 11/01/2006, 11h19
  5. [Forms 6i] Faire un commit seulement si ...
    Par macben dans le forum Forms
    Réponses: 12
    Dernier message: 26/11/2004, 13h49

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