Accès concurrents FireBird
Bonjour,
Sous Delphi Xe2 , Fire Bird 2.5 (64 Bits) Windows 7 Entreprise , j'ai écrit un programme tout simple qui lit une Table FireBird
(Matricule, Nom, Prenom) Avec un bouton Update
Si le matricule n'existe pas je fais un Insert sinon je Fais un Edit
Je fais le Post et juste après je fais le Commit
Sur un seul poste ça marche sans problème quelque soit l'emplacement de la Base sous réseaux.
1- Par contre en version réseaux ,deux postes seulement , aucun PC ne voit les mises à jour faites par l'autre PC.
C'est comme si chaque PC travaillait sur une copie de la BDD. Quand je quitte le programme et je le relance, je vois les modifications
faites par l'autre poste. Même en faisant Table.Close et Table.Open ça ne marche pas .
Comment régler ce problème. Merci d'éclairer ma lanterne.
2- Comment verrouiller un enregistrement d'une Table FireBird?
Problème de verrou sous FireBird
Bonjour,
Après plusieurs essais le problème de verrou est résolu si le Composant IbTransaction est paramétré à:
< Concurrency & nowait>
FireBird vérifie si l'enregitrement en mise à jour n'a pas été modifié par un autre utilisateur entre temps. Ceci s'avére très intéresant sans
trop de code il suffit de récupérer l'Exception après un Post.
If affiche le message : <deadlock update conflicts with concurrent update>
Il suffit d'envoyer un message à l'utilisateur et de relire l'enregistrement.
Reste le problème des performances à surveiller.