Bon voila
je suis sure une aplication de gestion de maintenance , je travail avec Delphi et MySQL 5 j'utilise ADO et une conexion ODBC a ma BDD,g un probleme concernant la gestion de la concurance d'acces a ma BDD .g rencontrer ce probleme dans le contexte suivant :
Modification d'un contrat :
un contrat de maintenance englob des materielles .
01- l'orsque un utilisateure charge un contrat pour modification j'execute une requette qui renvois les equipement couverts pas ce contrat , afin que l'utilisateure puisse modifier (ajouter ou suprimer un ou des equipements) ce contrat
02- je transfert la contenue de la requette vers un ListeVieuw
03- l'utilisateure peut suprimer une ligne (un equipement) ou en ajouter une autre, cette etape peut prendre su temps selon le nombre d'equipement a ajouter ou suprimer et selon l'utilisateure.
04- il enregistre les modifications en appuiyant sur le bouton enregistrer.
05- je transfert le contenue du ListeView vers les tables concernées en efectuant les modifications necessaires (ajout ou supression des equipements)
le probleme c'est que entre l'etape 1 et 4 un autre utilisateure peut fait le meme traitement en entier pour le meme contrat et la c la cata.
- je ce pas si les transactions peuvent m'aider a gerer ce probleme
- ou bien il faut passer par le verouillage des tables ou des enregistrement utilisés par cette procedure
dans les deux cas g jmais utiliser ni les transactions , ni le verouillage , g pas trouver un bon tutorial , merci d bien vouloire m'eclaircire les idées cars c la premier fois pour moi que je travail sur une BDD reseau ,
pour l'instant la seule solution que g trouver pour contourner ce probleme c créer un champ boolean sur toutes mes tables , et vant chaque ouverture de contrat je le mét a 1 pour chaque enregistrement , et a la fin de modification je le remét a 0 , et avant chaque acces je verifie si les enregistrement que je v chargé sont a 1 (verouillé par un autre utilisateure) ou a 0(non verouillés), je simule un verouillage d'enregistrement , je c que c pas une solution tres elegante , cars je suis sure qu'il existe quelque chose dans le SGBD qui gere ca, merci
*apartir de MySQL 5 on a une gestion de transactions et des procedures stockées.