Je pense que le niveau d'isolement de ta transaction est bon.
Je crois que ton problème reste dans la conception des transactions :
Lorsque tu veux entamer une opération particulière tu dois avoir une application active donc au tout début tu dois avoir :
MaTransaction.Active := True;
Ensuite tu active tes IBQuery ou tes IBDataSet. Tu fais ce que tu as à faire ensuite si tu as besoin de valider tes modifications tu fais un commit mais tu ne dois pas appeler StartTransaction car elle va activer une fois de plus ta transaction déjà active.
Un dur Commit désactive la transaction tu auras besoin de la réactiver pour d'autres opérations mais avec un CommitRetaining pas besoin de le faire car ça ne la désactive pas mais il ne fais pas abuser si tu as beacoup de client connectés.
Si tu veux envoyer un bout de code qui fais une opération particulière tu auras surement des réponses plus directes.
Partager