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

PostgreSQL Discussion :

Gestion des mises à jour effectuées sur un client


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut Gestion des mises à jour effectuées sur un client
    Bonjour,

    Désolé si je ne suis pas dans le bon forum puisque ma question n'est pas spécifique à PostgreSQL mais je ne sais pas trop quel forum utiliser pour cette question.

    Je suis à monter une interface graphique comme client à une base de donnée. Soit un formulaire semblable à une facture avec des informations sur une personne et des lignes contenant des achats affichés dans une liste. La liste est associé à un tableau qui est rempli à l'ouverture du formulaire par une requête sql. L'utilisateur peut ajouter, modifier ou supprimer des lignes et je dois pouvoir identifier les modifications survenues afin de faire les mises à jour dans la base lorsque l'utilisateur validera le formulaire.

    Je peut voir plusieurs possibilités pour ce genre de cas (qui j'imagine est très courant).

    1- avoir un tableau parallèle pour chaque cas (un contenant les lignes ajoutées, un pour les lignes modifiées et un pour les lignes supprimées). Cette méthode implique de devoir synchroniser 4 tableaux pour le cas où l'utilisateur ajoute une ligne puis la modifie et fini par la supprimer.

    2- ajouter un champ (statut) invisible pour l'utilisateur dans chaque ligne contenant un code indiquant si c'est une nouvelle ligne ou une modification (par exemple 0 pour une nouvelle, 1 pour une modifiée). Il faut tout de même un tableau parallèle pour gérer les suppressions puisque la ligne supprimée ne doit plus apparaître dans la liste affichée par le formulaire.

    3- faire les mises à jour en temps réel avec la base de données. Ceci implique que les modifications se passe à l'intérieur d'une transaction et de faire un COMMIT ou ROLLBACK selon que l'utilisateur valide ou annule le formulaire. L'autre problème est que le formulaire peut être affiché passablement longtemps si l'utilisateur décide de prendre une pause ou même de quitter le travail en laissant le formulaire ouvert...

    Il y a probablement d'autres possibilités et c'est là que j'ai besoin de vous

    Merci

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Par défaut
    Bonjour
    Questions ?
    Votre type interface prog (commandes) > postgresql ?
    Votre interface graphique est asynchrone WWW ou STD ?

  3. #3
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Votre type interface prog (commandes) > postgresql ?
    Le client utilise libpq pour les interactions avec la base et est construit avec Cocoa (Mac OS X).


    Votre interface graphique est asynchrone WWW ou STD ?
    asynchrone.

    Question :

    Si je choisi le cas #3, quelles sont les implications de garder une transaction ouverte pendant un temps très long ?

    Merci pour votre réponse.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Par défaut
    Bonjour
    Ok
    Pour la 3..
    En asynchrone Il vaut mieux opérer à la base sur l'interface de saisie c'est plus simple..
    Si l'utilisateur saisie des valeurs via le browser
    Ex:Modification de valeurs existantes

    input type=text name=xx0 value=(la même valeur du champs)
    input type=hidden name=xx0 value=(la même valeur du champs)


    La valeur hidden récupérée à l'ouverture ne changera pas au submit
    (l'utilisateur n'a pas accès)
    Si la valeur type text est changée ou supprimée vous pouvez le contrôler
    par comparaison des 2 variables.
    En asynchrone rien n'est simple ....
    Bon courage ...

  5. #5
    Membre éprouvé Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Par défaut
    Citation Envoyé par bustaf Voir le message
    En asynchrone rien n'est simple ....
    Bon courage ...
    Merci

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Par défaut
    Dois-je comprendre que je ne répond pas à votre question ???

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/11/2009, 18h39
  2. Gestion des mises à jour
    Par Tiger-222 dans le forum Windows Vista
    Réponses: 2
    Dernier message: 06/03/2009, 19h36
  3. Réponses: 5
    Dernier message: 09/10/2007, 20h49
  4. Gestion des mises à jour de mes développements ..
    Par flagadda dans le forum Windows
    Réponses: 2
    Dernier message: 16/08/2006, 10h53

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