Bonjour
Je rencontre un souci que je ne parviens pas à résoudre (3 jours que je cherche).
J'ai développé une application sous delphi, et avec une base de donnée FireBird 2.1
Tout fonctionnait bien depuis des mois.
Puis j'ai eu besoin d'un nouveau champ dans la base. Je l'ai donc ajouté en utilisant le soft EMS Firebird Manager. Le champ a bien été ajouté, il semble fonctionner. Pourtant depuis, je rencontre un phénomène très étrange :
Je peux créer un nouvel enregistrement dans mon application.
Mais si j'édite ce nouvel enregistrement durant la même session, les modifications apportées ne sont pas prises en compte. Un peu comme si elles ne se commitaient pas. Je suis obligé de fermer l'application, de la relancer, et seulement alors, les modifications que j'apporte au nouvel enregistrement sont prises en compte.
Je n'avais pas ce souci avant. Comment l'ajout d'un champ dans la base peut-il induire un tel bug ?
Pour éclaircir la situtation et essayer de comprendre, j'ai supprimé le nouveau champ. L'application est revenue à la normale et refonctionna bien...
J'ai alors recréé un champ "bidon" de type varchar tout simple, et le bug est revenu dans mon application.
J'ai supprimé ce champ, tout est redevenu normal.Nouveau test : je recrée un champ integer, le bug revient... ETC. ...
Bref, je peux reproduire l'erreur à chaque fois et j'ai donc bien identifié le souci : ajouter un champ à ma base, aussi simple soit-il, ne servant même pas dans un index, et complètement indépendant en termes d'intégrité référentielle, cela provoque un souci dans les transactions entre la base et mon application.
Avez-vous déjà rencontré ce problème ?
Avez-vous des pistes pour trouver une solution. Car il va sans dire que mon application et ses futures extensions sont fortement compromises si je ne peux plus ajouter de champs à la base...
Merci pour votre aide.
Partager