Bonjour,
Je dispose d'une DB dont une des tables (nommée DETAIL_RESA est corrompue), par ex quand on fait :
select count(*) from DETAIL_RESA
, on obtient le message d'erreur suivant :
internal gds software consistency check (decompression overan buffer (179))
Je ne peux pas faire de backup ou de validation sur cette base.
Par conséquent, voici ce que j'ai fait :
j'ai créé une nouvelle base .gdb
j'ai appliqué le script de création des fonctions UDF, des index, des tables, etc. généré par IBConsole sur cette nouvelle base
j'ai généré le contenu de toutes les tables de la base "cassée" dans des fichiers .sql (grâce à une application que j'ai développé) ; y compris pour la table corrompue
j'ai chargé les fichiers .sql un à un dans la nouvelle base précédente (grâce à mon application précédente)
CONCLUSION : je n'ai aucune erreur durant cette procédure mais lorsque j'utilise cette nouvelle base, tout accès à la table DETAIL_RESA qui était corrompue provoque un message d'erreur :
impossible de modifier un ensemble de données en lecture seule
IDEE : j'ai appliqué cette même cinématique sur une autre base non corrompue pour valider son fonctionnement et aussi surprenant que cela paraisse, ça engendre le même problème.
AUTRE IDEE : sur une base non corrompue si j'applique la même procédure MAIS que j'utilise IBExpert pour générer les fichiers .sql lors de la 3ème étape alors la nouvelle base fonctionne parfaitement.
CONCLUSION GENERALE : pour moi, le fait que la nouvelle base ne fonctionne pas vient du fait que les fichiers .sql générés par IBExpert sont différents de ceux générés par mon application. Hormis la syntaxe, c'est-à-dire des espaces entre les virgules, etc. ces fichiers sont identiques en nombre de lignes, ils ont le même format :
INSERT INTO DETAIL_RESA (det_codresa, det_noenreg, ...) VALUES (20, 12, ...);
Pour vous d'où vient cette différence ?
Merci par avance (et de votre patience pour m'avoir lu).
Partager