Bonjour,
J'utilise Interbase version 2007 sous W7 et je ne suis pas un grand spécialiste des bases de données (doux euphémisme)
Je reprends un projet en Delphi (mais qu'importe l'outil) dans lequel, dans une transaction j'ai (en langage symbolique) :
Le niveau d'isolation de la transaction est ReadCommited.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 start transaction select * from matable where critere if NbRecord > 0 // normalement 1 ou 0 puisque le critère de recherche se fait sur la clé primaire update matable set ... where critere else insert into matable .... commit (ou éventuellement rollback)
Est-ce que cela a vraiment un intérêt pour résoudre le problème qui m'occupe, à savoir :
Un autre programme vient de temps en temps, et de manière totalement asynchrone, enlever des enregistrements de matable, et ceci se produit apparemment de temps en temps entre le select et le update (en cas d'insert, pas de problème).
Je comprend bien l'intérêt d'une transaction, mais comment pourrait-elle, ne sachant pas ce que je veux faire de mon select, sauvegarder l'intégralité de l'état de la base ?
Faut-il un niveau d'isolation plus fort ?
SI quelqu'un a des lumières à m'apporter sur le sujet, qu'il en soit remercié d'avance.
Kim
Partager