Bonjour,
Mon problème est le suivant, je cherche comment gérer la gestion des accès a mes données par plusieurs clients en même temps.
Je m'explique, j'ai un DB firebird 1.5 qui tourne sur un serveur ainsi qu'un programme client (développé en delphi 6 pro) qui tourne sur plusieurs autres PC. Ce programme est une gestion après-vente avec gestion des clients, des articles, etc...
Si un PC client accède à la db, aucun prob, tout marche nickel.
Si 2 PC client accède à la db, tout fonctionne très bien TANT que les 2 ne modifient pas le MEME enregistrement en même temps.
S'ils rentrent tous les 2 en modification sur l'enregistrement article X (par exemple), les données seront mise a jour par celui qui sauvera en dernier.
J'aimerais trouver un moyen de dire au PC client (X) que l'enregistrement qu'il voudrait modifier EST DEJA en cours de modification par un autre PC client (Y).
Y-a-t-il moyen de faire ça au niveau des transactions ?
J'ai bien pensé a une solution, mais je ne la trouve pas très élégante.
En effet, la seule chose que j'ai trouvé jusqu'a présent est de créer un table dans ma db dans laquelle chaque client ira "dire" qu'il est en train de modifier tel champs. Ainsi quand un client veut modifier un champ, il va d'abord consulter cette table spéciale et renvoi un message si l'enregistrement est déjà en cours de modif par un autre client...
Bien sur dans le cas ou l'application qui a "vérouillé" un enregistrement PLANTE, l'enregistrement reste "vérouillé" et on doit le dévérouiller soit même.... pas très élégant tout ça.
Donc je recherche activement une autre solution...
Dernière chose, je suis en 2 tiers (DB + Client)
Merci pour ceux qui m'auront lu jusqu'au bout.
Partager