diff --git a/README.md b/README.md index c011326..0fd4243 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ ___ ### How to create a new database: -In LibreOffice / OpenOffice go to File -> New -> Database...: +In LibreOffice go to: **File -> New -> Database...**: ![HyperSQLOOo screenshot 1][27] @@ -116,6 +116,13 @@ In step: Save and proceed: Have fun... +### How to import data from a Calc file: + +LibreOffice offers you the possibility to import data from Calc directly into an existing table or one created for this import. Here is the procedure to follow: +- You must first create a new HsqlDB database as described in the [previous section][30]. +- In Calc select a range of cells then: **Edit -> Copy**. When creating a new table, it is possible to put in the first row the names of the columns as they will be imported into this new table. +- In Base (ie: the new HsqlDB database), after selecting **Tables** in the **Database** pane, right-click in the **Tables** pane then: **Paste** and follow the wizard that LibreOffice offers. **It is important to name the table with a full name** (ie: **PUBLIC.PUBLIC.Table1**). See the [HsqlDB documentation][31] about the **default catalog and schema**. + ### How to migrate an embedded database: If you want to migrate an integrated database (HsqlDB version 1.8.0) to a newer version (for example 2.7.2), follow these steps: @@ -126,24 +133,24 @@ If you want to migrate an integrated database (HsqlDB version 1.8.0) to a newer 5. Open the odb file in Base (double click on the odb file). 6. In Base go to: **Tools -> SQL** and type the SQL command: `SHUTDOWN COMPACT` or `SHUTDOWN SCRIPT`. -- Repeat this procedure at step 3 using version [2.4.0][30] or [2.4.1][31] or [2.5.0][32]. -- Repeat this procedure at step 3 using version [2.7.2][33]. +- Repeat this procedure at step 3 using version [2.4.0][32] or [2.4.1][33] or [2.5.0][34]. +- Repeat this procedure at step 3 using version [2.7.2][35]. ___ ## How does it work: -HyperSQLOOo is an [com.sun.star.sdbc.Driver][34] UNO service written in Python. +HyperSQLOOo is an [com.sun.star.sdbc.Driver][36] UNO service written in Python. It is an overlay to the [jdbcDriverOOo][10] extension allowing to store the HsqlDB database in an odb file (which is, in fact, a compressed file). Its operation is quite basic, namely: - When requesting a connection, several things are done: - If it does not already exist, a **subdirectory** with name: `.` + `odb_file_name` + `.lck` is created in the location of the odb file where all HsqlDB files are extracted from the **database** directory of the odb file (unzip). - - The [jdbcDriverOOo][10] extension is used to get the [com.sun.star.sdbc.XConnection][35] interface from the **subdirectory** path + `/hsqldb`. - - If the connection is successful, a [DocumentHandler][36] is added as an [com.sun.star.util.XCloseListener][37] and [com.sun.star.document.XStorageChangeListener][38] to the odb file. + - The [jdbcDriverOOo][10] extension is used to get the [com.sun.star.sdbc.XConnection][37] interface from the **subdirectory** path + `/hsqldb`. + - If the connection is successful, a [DocumentHandler][38] is added as an [com.sun.star.util.XCloseListener][39] and [com.sun.star.document.XStorageChangeListener][40] to the odb file. - If the connection is unsuccessful and the files was extracted in phase 1, the **subdirectory** will be deleted. -- When closing or renaming (Save As) the odb file, if the connection was successful, the [DocumentHandler][36] copies all files present in the **subdirectory** into the (new) **database** directory of the odb file (zip), then delete the **subdirectory**. +- When closing or renaming (Save As) the odb file, if the connection was successful, the [DocumentHandler][38] copies all files present in the **subdirectory** into the (new) **database** directory of the odb file (zip), then delete the **subdirectory**. The main purpose of this mode of operation is to take advantage of the ACID characteristics of the underlying database in the event of an abnormal closure of LibreOffice. On the other hand, the function: **file -> Save** has **no effect on the underlying database**. Only closing the odb file or saving it under a different name (File -> Save As) will save the database in the odb file. @@ -170,7 +177,7 @@ ___ ### What has been done for version 0.0.1: -- The writing of this driver was facilitated by a [discussion with Villeroy][39], on the OpenOffice forum, which I would like to thank, because knowledge is only worth if it is shared... +- The writing of this driver was facilitated by a [discussion with Villeroy][41], on the OpenOffice forum, which I would like to thank, because knowledge is only worth if it is shared... - Using the old version of HsqlDB 1.8.0 (can be easily updated). @@ -202,19 +209,19 @@ ___ ### What has been done for version 0.0.4: -- Modification of [Driver.py][40] in order to make possible the use of the Uno service: `com.sun.star.sdb.RowSet`. +- Modification of [Driver.py][42] in order to make possible the use of the Uno service: `com.sun.star.sdb.RowSet`. - Many other fix... ### What has been done for version 0.0.5: -- Writing a [DocumentHandler][36] to allow: +- Writing a [DocumentHandler][38] to allow: - The extraction of the database files contained in the **odb** file on connection. - Saving database files to **odb** file when closing it. -- Rewrote [Driver.py][40] to allow: +- Rewrote [Driver.py][42] to allow: - Its operation with the new JDBC driver provided by the extension [jdbcDriverOOo][10] version 0.0.4. - - The support for the new [DocumentHandler][36] to make **odb** files portable as they were in LibreOffice / OpenOffice with version 1.8 of HsqlDB. + - The support for the new [DocumentHandler][38] to make **odb** files portable as they were in LibreOffice / OpenOffice with version 1.8 of HsqlDB. - Many other fix... @@ -228,7 +235,7 @@ ___ - Renamed the extension from HsqlDriverOOo to HyperSQLOOo. -- Fixed [bug 156511][41] occurring when using the com.sun.star.embed.XStorage interface. The [workaround][42] is to use the copyElementTo() method instead of moveElementTo(). Versions of LibreOffice 7.6.x and higher become usable. +- Fixed [bug 156511][43] occurring when using the com.sun.star.embed.XStorage interface. The [workaround][44] is to use the copyElementTo() method instead of moveElementTo(). Versions of LibreOffice 7.6.x and higher become usable. ### What has been done for version 1.0.2: @@ -238,20 +245,20 @@ ___ ### What has been done for version 1.1.0: -- All Python packages necessary for the extension are now recorded in a [requirements.txt][43] file following [PEP 508][44]. +- All Python packages necessary for the extension are now recorded in a [requirements.txt][45] file following [PEP 508][46]. - Now if you are not on Windows then the Python packages necessary for the extension can be easily installed with the command: `pip install requirements.txt` -- Modification of the [Requirement][45] section. +- Modification of the [Requirement][47] section. ### What has been done for version 1.1.1: -- Support for [new features][46] in **jdbcDriverOOo 1.1.2**. +- Support for [new features][48] in **jdbcDriverOOo 1.1.2**. ### What has been done for version 1.1.2: - Support for the latest version of **jdbcDriverOOo 1.3.1**. - When saving under a different name, the database if open will be closed correctly. -- When opening an odb file, if the connection fails, to avoid data destruction, recompression of the database files will not take place. Thanks to Robert for being able to detect this [issue][47]. +- When opening an odb file, if the connection fails, to avoid data destruction, recompression of the database files will not take place. Thanks to Robert for being able to detect this [issue][49]. ### What has been done for version 1.1.3: @@ -259,14 +266,14 @@ ___ ### What has been done for version 1.1.4: -- Updated the [Python packaging][48] package to version 24.1. -- Updated the [Python setuptools][49] package to version 72.1.0. +- Updated the [Python packaging][50] package to version 24.1. +- Updated the [Python setuptools][51] package to version 72.1.0. - The extension will ask you to install the jdbcDriverOOo extension in versions 1.4.2 minimum. ### What has been done for version 1.1.5: -- Fixed [issue #2][50] which appears to be a regression related to the release of JaybirdOOo. Thanks to TeddyBoomer for reporting it. -- Updated the [Python setuptools][49] package to version 73.0.1. +- Fixed [issue #2][52] which appears to be a regression related to the release of JaybirdOOo. Thanks to TeddyBoomer for reporting it. +- Updated the [Python setuptools][51] package to version 73.0.1. - The extension options are now accessible via: **Tools -> Options... -> LibreOffice Base -> Embedded HsqlDB Driver** ### What has been done for version 1.1.6: @@ -315,24 +322,26 @@ ___ [27]: [28]: [29]: -[30]: -[31]: -[32]: -[33]: -[34]: -[35]: -[36]: -[37]: -[38]: -[39]: -[40]: -[41]: -[42]: -[43]: -[44]: -[45]: -[46]: -[47]: -[48]: -[49]: -[50]: +[30]: +[31]: +[32]: +[33]: +[34]: +[35]: +[36]: +[37]: +[38]: +[39]: +[40]: +[41]: +[42]: +[43]: +[44]: +[45]: +[46]: +[47]: +[48]: +[49]: +[50]: +[51]: +[52]: diff --git a/README_fr.md b/README_fr.md index c2ecc72..d44259f 100644 --- a/README_fr.md +++ b/README_fr.md @@ -97,7 +97,7 @@ ___ ### Comment créer une nouvelle base de données: -Dans LibreOffice / OpenOffice aller à: Fichier -> Nouveau -> Base de données...: +Dans LibreOffice aller à: **Fichier -> Nouveau -> Base de données...**: ![HyperSQLOOo screenshot 1][27] @@ -116,6 +116,13 @@ A l'étape: Enregistrer et continuer: Maintenant à vous d'en profiter... +### Comment importer des données depuis un fichier Calc: + +LibreOffice vous offre la possibilité d'importer des données depuis Calc directement dans une table existante ou créée pour cet import. Voici la procédure à suivre: +- Vous devez d'abord créer une nouvelle base de données HsqlDB comme décrit dans la [section précédente][30]. +- Dans Calc sélectionner une plage de cellules puis: **Edition -> Copier**. Lors de la création d'une nouvelle table, il est possible de mettre dans la première ligne les noms des colonnes telles qu'elles seront importées dans cette nouvelle table. +- Dans Base (ie: la nouvelle base de données HsqlDB), après avoir sélectionné **Tables** dans le volet **Base de données**, faites un clic droit dans le volet **Tables** puis: **Coller** et suivez l'assistant proposé par LibreOffice. **Il est important de nommer la table avec un nom complet** (ie: **PUBLIC.PUBLIC.Table1**). Voir la [documentation HsqlDB][31] sur le **catalogue et le schéma par défaut**. + ### Comment migrer une base de données intégrée: Si vous souhaitez migrer une base de données intégrée (HsqlDB version 1.8.0) vers une version plus récente (par exemple 2.7.2), procédez comme suit: @@ -126,24 +133,24 @@ Si vous souhaitez migrer une base de données intégrée (HsqlDB version 1.8.0) 5. Ouvrir le fichier odb dans Base (double clique sur le fichier odb). 6. Dans Base allez à: **Outils -> SQL** et tapez la commande SQL: `SHUTDOWN COMPACT` ou `SHUTDOWN SCRIPT`. -- Recommencez cette procédure à l'étape 3 en utilisant une version [2.4.0][30] ou [2.4.1][31] ou [2.5.0][32]. -- Recommencez cette procédure à l'étape 3 en utilisant la version [2.7.2][33]. +- Recommencez cette procédure à l'étape 3 en utilisant une version [2.4.0][32] ou [2.4.1][33] ou [2.5.0][34]. +- Recommencez cette procédure à l'étape 3 en utilisant la version [2.7.2][35]. ___ ## Comment ça marche: -HyperSQLOOo est un service [com.sun.star.sdbc.Driver][34] UNO écrit en Python. +HyperSQLOOo est un service [com.sun.star.sdbc.Driver][36] UNO écrit en Python. Il s'agit d'une surcouche à l'extension [jdbcDriverOOo][10] permettant de stocker la base de données HsqlDB dans un fichier odb (qui est, en fait, un fichier compressé). Son fonctionnement est assez basique, à savoir: - Lors d'une demande de connexion, plusieurs choses sont faites: - S'il n'existe pas déjà, un **sous-répertoire** avec le nom: `.` + `nom_du_fichier_odb` + `.lck` est créé à l'emplacement du fichier odb dans lequel tous les fichiers HsqlDB sont extraits du répertoire **database** du fichier odb (décompression). - - L'extension [jdbcDriverOOo][10] est utilisée pour obtenir l'interface [com.sun.star.sdbc.XConnection][35] à partir du chemin du **sous-répertoire** + `/hsqldb`. - - Si la connexion réussi, un [DocumentHandler][36] est ajouté en tant que [com.sun.star.util.XCloseListener][37] et [com.sun.star.document.XStorageChangeListener][38] au fichier odb. + - L'extension [jdbcDriverOOo][10] est utilisée pour obtenir l'interface [com.sun.star.sdbc.XConnection][37] à partir du chemin du **sous-répertoire** + `/hsqldb`. + - Si la connexion réussi, un [DocumentHandler][38] est ajouté en tant que [com.sun.star.util.XCloseListener][39] et [com.sun.star.document.XStorageChangeListener][40] au fichier odb. - Si la connexion échoue et que les fichiers ont été extraits lors de la phase 1, le **sous-répertoire** est supprimé. -- Lors de la fermeture ou du changement de nom (Enregistrer sous) du fichier odb, si la connexion a réussi, le [DocumentHandler][36] copie tous les fichiers présents dans le **sous-répertoire** dans le (nouveau) répertoire **database** du fichier odb (zip), puis supprime le **sous-répertoire**. +- Lors de la fermeture ou du changement de nom (Enregistrer sous) du fichier odb, si la connexion a réussi, le [DocumentHandler][38] copie tous les fichiers présents dans le **sous-répertoire** dans le (nouveau) répertoire **database** du fichier odb (zip), puis supprime le **sous-répertoire**. Le but principal de ce mode de fonctionnement est de profiter des caractéristiques ACID de la base de données sous-jacente en cas de fermeture anormale de LibreOffice. En contre partie, la fonction: **fichier -> Sauvegarder** n'a **aucun effet sur la base de données sous jacente**. Seul la fermeture du fichier odb ou son enregistrement sous un nom different (Fichier -> Enregistrer sous) effectura la sauvegarde de la base de donnée dans le fichier odb. @@ -170,7 +177,7 @@ ___ ### Ce qui a été fait pour la version 0.0.1: -- La rédaction de ce pilote a été facilitée par une [discussion avec Villeroy][39], sur le forum OpenOffice, que je tiens à remercier, car la connaissance ne vaut que si elle est partagée... +- La rédaction de ce pilote a été facilitée par une [discussion avec Villeroy][41], sur le forum OpenOffice, que je tiens à remercier, car la connaissance ne vaut que si elle est partagée... - Utilisation de l'ancienne version de HsqlDB 1.8.0 (peut être facilement mise à jour). @@ -202,19 +209,19 @@ ___ ### Ce qui a été fait pour la version 0.0.4: -- Modification de [Driver.py][40] afin de rendre possible l'utilisation du service Uno: `com.sun.star.sdb.RowSet`. +- Modification de [Driver.py][42] afin de rendre possible l'utilisation du service Uno: `com.sun.star.sdb.RowSet`. - Beaucoup d'autres correctifs... ### Ce qui a été fait pour la version 0.0.5: -- Ecriture d'un [DocumentHandler][36] responsable: +- Ecriture d'un [DocumentHandler][38] responsable: - De l'extraction des fichiers de base de données contenus dans le fichier **odb** à la connexion. - De la sauvegarde des fichiers de base de données dans le fichier **odb** lors de sa fermeture. -- Réécriture de [Driver.py][40] afin de permettre: +- Réécriture de [Driver.py][42] afin de permettre: - Son fonctionnement avec le nouveau pilote JDBC fourni par l'extension [jdbcDriverOOo][10] version 0.0.4. - - La prise en charge du nouveau [DocumentHandler][36] afin de rendre les fichiers **odb** portables tels qu'ils étaient dans LibreOffice / OpenOffice avec la version 1.8 de HsqlDB. + - La prise en charge du nouveau [DocumentHandler][38] afin de rendre les fichiers **odb** portables tels qu'ils étaient dans LibreOffice / OpenOffice avec la version 1.8 de HsqlDB. - Beaucoup d'autres correctifs... @@ -228,7 +235,7 @@ ___ - Renommage de l'extension de HsqlDriverOOo en HyperSQLOOo. -- Résolution du [dysfonctionnement 156511][41] survenant lors de l'utilisation de l'interface com.sun.star.embed.XStorage. Le [contournement][42] consiste à utiliser la méthode copyElementTo() au lieu de moveElementTo(). Les versions de LibreOffice 7.6.x et supérieures deviennent utilisables. +- Résolution du [dysfonctionnement 156511][43] survenant lors de l'utilisation de l'interface com.sun.star.embed.XStorage. Le [contournement][44] consiste à utiliser la méthode copyElementTo() au lieu de moveElementTo(). Les versions de LibreOffice 7.6.x et supérieures deviennent utilisables. ### Ce qui a été fait pour la version 1.0.2: @@ -238,20 +245,20 @@ ___ ### Ce qui a été fait pour la version 1.1.0: -- Tous les paquets Python nécessaires à l'extension sont désormais enregistrés dans un fichier [requirements.txt][43] suivant la [PEP 508][44]. +- Tous les paquets Python nécessaires à l'extension sont désormais enregistrés dans un fichier [requirements.txt][45] suivant la [PEP 508][46]. - Désormais si vous n'êtes pas sous Windows alors les paquets Python nécessaires à l'extension peuvent être facilement installés avec la commande: `pip install requirements.txt` -- Modification de la section [Prérequis][45]. +- Modification de la section [Prérequis][47]. ### Ce qui a été fait pour la version 1.1.1: -- Prise en charge des [nouvelles fonctionnalités][46] de **jdbcDriverOOo 1.1.2**. +- Prise en charge des [nouvelles fonctionnalités][48] de **jdbcDriverOOo 1.1.2**. ### Ce qui a été fait pour la version 1.1.2: - Prise en charge de la dernière version de **jdbcDriverOOo 1.3.1**. - Lors de l'enregistrement sous un nom différent, la base de données si ouverte sera fermée correctement. -- Lors de l'ouverture d'un fichier odb, si la connexion échoue, pour éviter la destruction des données, la recompression des fichiers de la base de données n'aura pas lieu. Merci à Robert d'avoir su détecter ce [dysfonctionnement][47]. +- Lors de l'ouverture d'un fichier odb, si la connexion échoue, pour éviter la destruction des données, la recompression des fichiers de la base de données n'aura pas lieu. Merci à Robert d'avoir su détecter ce [dysfonctionnement][49]. ### Ce qui a été fait pour la version 1.1.3: @@ -259,14 +266,14 @@ ___ ### Ce qui a été fait pour la version 1.1.4: -- Mise à jour du paquet [Python packaging][48] vers la version 24.1. -- Mise à jour du paquet [Python setuptools][49] vers la version 72.1.0. +- Mise à jour du paquet [Python packaging][50] vers la version 24.1. +- Mise à jour du paquet [Python setuptools][51] vers la version 72.1.0. - L'extension vous demandera d'installer l'extensions jdbcDriverOOo en version 1.4.2 minimum. ### Ce qui a été fait pour la version 1.1.5: -- Correction du [problème n°2][50] qui semble être une régression liée à la sortie de JaybirdOOo. Merci à TeddyBoomer de l'avoir signalé. -- Mise à jour du paquet [Python setuptools][49] vers la version 73.0.1. +- Correction du [problème n°2][52] qui semble être une régression liée à la sortie de JaybirdOOo. Merci à TeddyBoomer de l'avoir signalé. +- Mise à jour du paquet [Python setuptools][51] vers la version 73.0.1. - Les options de l'extension sont désormais accessibles via: **Outils -> Options... -> LibreOffice Base -> Pilote HsqlDB intégré** ### Ce qui a été fait pour la version 1.1.6: @@ -315,24 +322,26 @@ ___ [27]: [28]: [29]: -[30]: -[31]: -[32]: -[33]: -[34]: -[35]: -[36]: -[37]: -[38]: -[39]: -[40]: -[41]: -[42]: -[43]: -[44]: -[45]: -[46]: -[47]: -[48]: -[49]: -[50]: +[30]: +[31]: +[32]: +[33]: +[34]: +[35]: +[36]: +[37]: +[38]: +[39]: +[40]: +[41]: +[42]: +[43]: +[44]: +[45]: +[46]: +[47]: +[48]: +[49]: +[50]: +[51]: +[52]: