slt
1 :
D'aprés ce que j'ai compris en lisant les posts, il faut utiliser des transactions différentes pour chaque type d'accés à une base ( INSERT, UPDATE, LECTURE,DELETE). Pour résumer il faut donc au moins 4 composants transactions ( + 1 pour le composant IbDatabase ).
2 :
Les transactions sont initiées par les clients avec :
3 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4MaTransaction.Start; MaTransaction.Commit; MaTransaction.RoolBack;
Dans le cas ou on utilise une transaction spécifique pour un évènement ( par ex : INSERT ) on fera pour valider l'insertion un CommitRetaining, et un RoolbackRetaining pour annuler ces insertion. Il faut auparavant vérifier je suppose s'il s'agit bien de la transaction souhaitée ? avec un InTransaction :
4 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2if matransaction.InTransaction
Est ce que IB6 affiche un message si un client essaie de modifier un enreg si un autre client est en train de le visualiser ou de le modifier par exemple ?
5 : faut il mieux utiliser un trigger ou une PS pour signaler à un client par exemple que l'enreg qu'il a saisi existe déja ?
Car dans une PS si on détecte que l'enreg existe déja, on l'annule par un roolback, alors que dans le trigger le traitement se fera dans l'évenement BEFORE_INSERT par exemple ! Quelle est la meilleure solution ?
Merci
A+
Partager