![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre régulier
![]() Date d'inscription: septembre 2005
Localisation: Montréal
Messages: 116
|
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 |
|
|
|
|
|
#3 (permalink) | ||
|
Membre régulier
![]() Date d'inscription: septembre 2005
Localisation: Montréal
Messages: 116
|
Citation:
Citation:
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 (permalink) |
|
Membre actif
![]() Date d'inscription: novembre 2004
Messages: 196
|
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 ...
|
|
|
|
|
![]() |
![]() |
||
Gestion des mises à jour effectuées sur un client
|
||
| Outils de la discussion | |
|
|