[Base] Impossible enregistrer modifications

Bonjour,

Depuis hier soir, j’ai un soucis avec ma base de données. Il s’agit d’une base LibO avec Firebird intégré. Je suis sous Lubuntu 18.04, et sous LibO 6.3.0.4.

Il y a dans le fichier pas mal de tables (j’en suis à l’étape de modélisation/formatage des formulaires, donc peu de données déjà rentrées dans les tables), quelques formulaires (en cours de préparation), et aucune requête et aucun rapport.
J’ai également des macros attachés à mon fichier.

Je me suis rendu compte, lors de tests de boutons, zones de listes dans un formulaire, qu’après ajout de données, et enregistrement (via le bouton enregistré de la barre d’outil interne à LibO) que les nouvelles données apparaissaient bien dans la table liée. Cependant, après enregistrement de la base (fichier odb), puis fermant toute la base, lorsque je ré-ouvre, il n’y a pas les nouvelles données indiquées avant. Dans tout ça, aucun message d’erreur…

J’ai tenté de copier mon fichier (via un simple copier-coller dans mon explorateur, et aussi via ‘enregistrer sous’), mais le comportement reste le même : toutes les nouvelles données intégrées dans la base apparaissent lors de la session, mais ont disparu après réouverture du fichier… Idem, l’ajout d’une nouvelle table ne se conserve pas après fermeture-réouverture. Même en ayant supprimé tous mes formulaires, et tout ce qu’il y avait dans mon fichier de macro, cela ne modifie pas le problème.

J’ai également tenté de créer un nouveau fichier odb (base firebird intégrée) à partir de l’interface générale de LibO (nouveau fichier Base), puis ai copié-collé une table de mon fichier ‘corrompu’ dans mon nouveau fichier. Ici, l’ajout de nouvelles données dans la table est persistant après fermeture-réouverture du nouveau fichier. Ce qui me fait penser qu’il s’agit de quelque chose interne à la configuration du fichier…?

J’ai également tenté de renommer le dossier de config de LibO (dans mon /home) pour qu’il regénère quelque chose en relançant LibO, mais le nouveau dossier de config n’a rien changé…

J’imagine que c’est un problème de code lu par le programme à l’ouverture de mon fichier corrompu…? Mais n’ai aucune idée de où et quoi vérifier, et s’il est possible de récupérer ?

J’ai de temps en temps des plantages, qui proposent une réouverture automatique avec récupération. Cependant, autant pour des fichiers odt, ods, ça fonctionne, autant cela n’a jamais fonctionné avec mon fichier odb… (il semble récupérer, et après avoir cliqué sur ‘Démarrer’, il replante et repropose une récupération, cycle sans fin). Du coup, à chaque plantage (vu que j’enregistre assez fréquemment manuellement), je ne demande pas de récupération. Mais peut-être est-ce lors d’un de ces plantages qu’un bout de code de configuration du fichier a été corrompu…?

Si vous avez quelque piste, je suis preneur ! plutôt que de reprendre et exporter table par table ma base dans un nouveau fichier…
Merci d’avance !

Benjamin

[edit] je viens de tester de rajouter un formulaire : il est conservé après fermeture-réouverture du fichier. Il semblerait donc que ce soit uniquement un problème de connexion à la base intégrée Firebird…

Bonjour

Je n’ai pas fait d’essai mais peut-être voir du côté de fbcopy

Cordialement

Merci pour votre retour et suggestion.
J’ai jeté un coup d’oeil sur l’outil, mais je ne sais pas vraiment comment l’utiliser avec un fichier odb …En effet, dans la doc, ils parlent de formats .gdb et .fbx.
Je ne suis pas assez expérimenté pour cette récupération avec fbcopy…
En alternative, j’ai pour l’instant créé un nouveau fichier Base (toujours base Firebird intégrée), puis copié un à un l’ensemble des tables, des formulaires, et des macros depuis la version corrompue vers le nouveau fichier. En donnant au(x) module(s) des macros le même nom que dans le fichier corrompu, les boutons et événements des formulaires dans le nouveau fichier sont opérationnels sans autre configuration (enfin, d’après ce que j’ai pu testé pour l’instant !).
En espérant que cette corruption de fichier ne se reproduira pas…
J’attends de tester un peu plus à l’utilisation avant de mettre le post en résolu. (existe-t-il un autre mot-clef pour attendre d’autres propositions ?)
Merci en tous cas.

@greb a écrit :

existe-t-il un autre mot-clef pour attendre d’autres propositions ?

Non, rien à indiquer de particulier, tant que la question n’est pas fermée ou marquée “répondue”.

Cordialement