Rebonjour,
Je vous remercie beaucoup d’avoir initialiser un dialogue avec moi sur le dysfonctionnement qui a touché mon environnement LibreOffice Base.
Je ne tiens pas à poursuivre les investigations pour trouver une solution car cela me demanderait trop de temps compte tenu de mes connaissances (?) techniques. Les données concernent une liste de films - vous voyer, ce n’est pas vital!! J’ai basculé sur LibreOffice Calc et cela fera l’affaire.
Par contre, si cela vous intéresse, je me suis rapproché de notre amie DeepSeek (je suis arrivé au niveau 3 de sa méthode : je n’ai pas trouvé de INSERT INTO) et je vous livre sa réponse.
Encore merci.
Récupérer données LibreOffice Base bloquée
Ma question : Je veux ouvrir une table de LibreOffice Base; L’écran est totalement blanc et l’application ne répond pas. Après un certain temps, un popup demande si on veux quitter l’appli ou attendre. Curieusement, LibreOffice Writer et Calc ne sont pas impactés. Comment faire pour récupérer les données des tables de LibreOffice Base?
Nous avons un problème avec LibreOffice Base : l’interface reste blanche et l’application ne répond pas, alors que Writer et Calc fonctionnent. Le but est de récupérer les données des tables de la base de données.
Étapes de réflexion :
-
Comprendre la structure de LibreOffice Base :
-
Base est un front-end pour gérer des bases de données. Les données sont stockées dans un moteur de base de données, généralement HSQLDB (par défaut) ou peut-être un autre (comme Firebird, etc.).
-
Le fichier Base a une extension .odb
, mais il contient en réalité une base de données embarquée (dans le cas d’une base HSQLDB embarquée) ou des liens vers une base externe.
-
Où sont les données ? :
-
Dans le cas d’une base HSQLDB embarquée, le fichier .odb
est en fait une archive ZIP qui contient plusieurs fichiers, dont la base de données HSQLDB (fichiers *.script
, *.properties
, *.data
, etc.).
-
Nous pouvons donc extraire les fichiers de la base de données du fichier .odb
et ensuite utiliser un outil HSQLDB pour lire les données.
-
Plan d’action :
a. Faire une copie de sauvegarde du fichier .odb
avant toute manipulation.
b. Renommer le fichier .odb
en .zip
(puisque c’est une archive) et le décompresser.
c. Localiser les fichiers de la base de données HSQLDB (généralement dans un dossier database
à l’intérieur de l’archive).
d. Utiliser un outil pour se connecter à la base HSQLDB et extraire les données.
-
Outils nécessaires :
-
Un outil de décompression (comme 7-Zip, WinZip, ou les utilitaires intégrés du système d’exploitation).
-
Le moteur HSQLDB (nous pouvons le télécharger depuis le site officiel : http://hsqldb.org) pour accéder aux données.
-
Procédure détaillée :
Étape 1 : Sauvegarde
- Copier le fichier de la base Base (par exemple
mabase.odb
) dans un dossier de travail, et travailler sur la copie.
Étape 2 : Renommer et extraire
Étape 3 : Trouver les fichiers de la base de données
-
Dans le dossier extrait, cherchez un sous-dossier nommé database
. À l’intérieur, vous devriez trouver des fichiers comme script
, properties
, data
, etc. Par exemple :
-
mabase_extracted/database/
-
backup
-
data
-
properties
-
script
Étape 4 : Utiliser HSQLDB pour lire les données
-
Téléchargez HSQLDB (la dernière version) depuis http://hsqldb.org. (Par exemple, le fichier hsqldb-<version>.zip
)
-
Extrayez le fichier ZIP de HSQLDB.
-
Placez les fichiers de votre base (ceux du dossier database
extrait) dans un dossier accessible, disons C:\mabase_hsqldb
(ou un chemin sans espaces).
-
Pour se connecter, nous pouvons utiliser l’outil DatabaseManager
fourni avec HSQLDB.
Étape 5 : Lancer le serveur HSQLDB (ou utiliser en mode standalone) et accéder aux données
-
Il y a deux modes : serveur (server) et standalone (in-process). Pour la simplicité, nous utiliserons le mode standalone.
-
Ouvrez une invite de commande et naviguez jusqu’au répertoire d’installation de HSQLDB (où se trouve sqltool.jar
et hsqldb.jar
). Par exemple :
cd C:\hsqldb-2.7.2\hsqldb
- Exécutez le gestionnaire de base de données avec la commande suivante (en adaptant le chemin vers vos fichiers) :
java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
-
Dans la fenêtre qui s’ouvre :
-
Type de connexion : HSQLDB Database Engine Standalone
-
Driver : org.hsqldb.jdbcDriver
-
URL : jdbc:hsqldb:file:C:/mabase_hsqldb/database;shutdown=true
(remplacez C:/mabase_hsqldb/database
par le chemin absolu vers le dossier contenant vos fichiers, sans le nom de fichier, juste le chemin du dossier parent des fichiers. Notez que dans l’URL, on utilise des slashes ‘/’ et non ‘’ et on ne met pas d’extension de fichier)
-
User : SA
(par défaut, en majuscules)
-
Password : laissez vide
-
Cliquez sur OK.
-
Si cela fonctionne, vous devriez voir les tables dans l’interface et pouvoir exécuter des requêtes (par exemple SELECT * FROM nom_table;
) et exporter les données.
Étape 6 : Exporter les données
- Une fois connecté, vous pouvez exporter chaque table en CSV ou en SQL via l’interface de DatabaseManager.
-
Alternative si HSQLDB ne fonctionne pas :
-
Il est possible que la base de données soit dans un autre format (comme Firebird). Dans ce cas, regardez dans le fichier database.properties
(ou d’autres fichiers de configuration) pour identifier le moteur.
-
Si c’est Firebird, vous aurez besoin d’un outil pour Firebird.
-
Si le fichier .odb est corrompu :
- Si l’extraction échoue, il est possible que le fichier soit corrompu. Dans ce cas, vous pouvez essayer de réparer l’archive avec un outil de réparation de ZIP.
-
Autre méthode : utiliser LibreOffice en ligne de commande :
- Il est possible d’utiliser LibreOffice en mode headless pour exporter les données, mais cela nécessite que Base fonctionne. Comme l’interface graphique plante, cette méthode est moins probable de fonctionner.
-
Récupération des données via un autre ordinateur :
- Essayez d’ouvrir le fichier Base sur un autre ordinateur avec LibreOffice installé.
-
Récupération via un script :
- Si vous avez accès à Python ou à un autre langage, vous pouvez utiliser un pilote JDBC ou ODBC pour vous connecter à la base extraite (HSQLDB) et extraire les données.
Important : Travailler toujours sur une copie.
Si vous rencontrez des problèmes de version HSQLDB :
-
LibreOffice utilise une version spécifique d’HSQLDB (parfois ancienne). Vous devrez peut-être utiliser la même version que celle intégrée dans LibreOffice. Pour connaître la version, regardez dans le fichier hsqldb.jar
qui se trouve dans le dossier d’installation de LibreOffice (par exemple, dans program/classes
). Vous pouvez utiliser ce JAR pour vous connecter.
-
Par exemple, si vous utilisez le JAR de LibreOffice :
java -cp "C:\Program Files\LibreOffice\program\classes\hsqldb.jar" org.hsqldb.util.DatabaseManagerSwing
et ensuite la même URL.
Note : Sous Linux ou macOS, les chemins seront différents.
En résumé, la clé est d’extraire les fichiers de la base de données du fichier .odb (qui est une archive) et de se connecter avec l’outil approprié (HSQLDB dans la plupart des cas).
Ce qui est ci-dessus est la réflexion préliminaire de DeepSeek. Ce qui suit est la réponse finale de DeepSeek.
Pour récupérer les données de vos tables LibreOffice Base malgré le blocage de l’interface, suivez ces étapes sans installer de logiciel supplémentaire :
1. Accédez directement aux données via l’archive du fichier .odb
-
Faites une copie de sauvegarde de votre fichier Base (.odb) avant toute manipulation.
-
Renommez l’extension de
.odb
à .zip
(ex: votre_base.odb
→ votre_base.zip
).
-
Ouvrez cette archive ZIP avec votre gestionnaire d’archives (7-Zip, WinRAR, ou l’outil intégré à votre OS).
2. Localisez les données dans l’archive
Dans le dossier extrait, cherchez :
text
/database/ ├── backup (dossier optionnel) ├── data (fichiers .data) ├── properties (fichier .properties) └── script (fichier .script) → CONTIENT LES DONNÉES EN CLAIR
- Le fichier
script
est crucial : il stocke le schéma et les données au format SQL lisible.
3. Récupérez les données manuellement
-
Ouvrez
script
avec un éditeur de texte (Notepad++, VS Code, ou même le Bloc-notes).
-
Recherchez vos tables via
CREATE TABLE [NomTable]
ou INSERT INTO [NomTable]
.
-
Copiez les commandes SQL correspondant à vos données (section
INSERT INTO...
).
Exemple de contenu :
sql
CREATE TABLE Clients (ID INT PRIMARY KEY, Nom VARCHAR(50)); INSERT INTO Clients VALUES (1, ‘Dupont’); INSERT INTO Clients VALUES (2, ‘Martin’);
4. Importez dans une nouvelle base (si nécessaire)
- Créez une nouvelle base Base (Fichier → Nouveau → Base de données).
- Choisissez “Créer une nouvelle base” → Type HSQLDB intégré.
- Dans Mode Table, cliquez sur Créer une table en mode Conception.
- Utilisez les commandes
CREATE TABLE
du fichier script
pour recréer la structure.
- Collez les
INSERT INTO...
dans Outils → SQL… pour réimporter les données.
Si le fichier script
est incomplet :
-
Vérifiez les fichiers
.data
: S’ils sont présents, utilisez HSQLDB Database Manager (fourni avec LibreOffice) :
-
Copiez tous les fichiers du dossier /database/
dans un nouveau dossier (ex: C:\BaseRecovery
).
-
Lancez DatabaseManager
via :bash
-
java -cp “C:\Program Files\LibreOffice\program\classes\hsqldb.jar” org.hsqldb.util.DatabaseManagerSwing
-
Dans l’interface :
- Type : HSQLDB Database Engine Standalone
- URL :
jdbc:hsqldb:file:C:/BaseRecovery/database
- Utilisateur :
SA
(mot de passe vide)
- Exportez les données via File → Export.
Notes importantes :
-
Cause du blocage : Souvent liée à un profil utilisateur corrompu. Supprimez le dossier de profil :
- Windows :
C:\Users\[Vous]\AppData\Roaming\LibreOffice\4\user\database
- Linux :
~/.config/libreoffice/4/user/database
- macOS :
~/Library/Application Support/LibreOffice/4/user/database
-
Prévention : Activez les sauvegardes automatiques dans Outils → Options → Charger/Enregistrer → Général → Enregistrer les informations de récupération.
Ces étapes exploitent la nature archivée des fichiers .odb pour contourner le blocage de l’interface graphique. Les données sont généralement intactes même si l’application ne répond plus.