[Résolu] Migration base interne HSQLDB vers FIREBIRD

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
wormsf
Membre hOOnoraire
Membre hOOnoraire
Messages : 166
Inscription : 02 janv. 2008 17:15

[Résolu] Migration base interne HSQLDB vers FIREBIRD

Message par wormsf »

Bonjour
Tout d'abord bonne année 2019 à tous les défenseurs du logiciel libre

j'ai développé depuis près de 10 ans petit à petit une base de donnée sous libreoffice pour la gestion d'une association
j'utilise actuellement la version 6.0.7 de libreoffice
j'ai chargé la version 6.1 et me suis aperçu à ma grande surprise qu'il proposait de migrer vers Firebird
et dans quelques articles, il me semble avoir compris qu'à terme HSQL serait abandonné au profit de FIREBIRD
Soit, j'ai donc pris une base de test avec uniquement les tables principales , en enlevant les requêtes les macros et autres formulaires

J'ai lancé la conversion proposée, et çà plante , les messages d'erreur ne sont pas du tout explicite,
sou la version officielle 6.0 J'ai créé une nouvelle base FIREBIRD, recopié la structure d'une 1ère table de ma base de test (ADHERENTS) et essayé de remplir avec les données de la table, au surprise, tous les champs Numérique sont remplis avec des chiffres incomprehensibles

je suis vraiment inquiet, car s'il faut que je reprenne tout le travail fait depuis 10 ans , je désespère et j'en suis uniquement aux tables, qu'est ce que cela augure pour les requetes ou formulaires

y a t'il une aide pour faire cette conversion

Cordialement
Dernière modification par wormsf le 16 févr. 2019 20:49, modifié 2 fois.
Libreoffice Version:7.5.8.2

Linux Mint 21.2
Noyau linux 5.15.0-91-generic
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Migration base interne HSQLDB vers FIREBIRD

Message par jeanmimi »

Bonjour,
wormsf a écrit :J'ai lancé la conversion proposée, et çà plante , les messages d'erreur ne sont pas du tout explicite,
Le plantage, chez moi, est lié à une trace de Macro que je n'arrive pas à visualiser.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9222
Inscription : 28 août 2010 10:45

Re: Migration base interne HSQLDB vers FIREBIRD

Message par micmac »

Dans votre signature il y a écrit :Version: 5.3.7.2
Build ID: 6b8ed514a9f8b44d37a1b96673cbbdd077e24059
Threads CPU : 4; Version de l'OS :Linux 4.10; UI Render : par défaut; VCL : kde4; Moteur de mise en page : nouveau;
Locale : fr-FR (fr_FR.UTF-8); Calc: group
Linux Mint 18.1 Serena
[b][color=#404080]wormsf[/color][/b] a écrit :j'utilise actuellement la version 6.0.7 de libreoffice
C'est cette information qui doit figurer dans votre signature en précisant la version exacte de LibO (version officielle ou des dépôts selon le cas) et le système sur lequel il tourne.

Accès direct à votre signature pour la corriger.
wormsf
Membre hOOnoraire
Membre hOOnoraire
Messages : 166
Inscription : 02 janv. 2008 17:15

Re: Migration base interne HSQLDB vers FIREBIRD

Message par wormsf »

Micmac
j'ai corrigé ma signature
jeanmimi
la base que j'ai mise est la base de départ HSQL
FVP TEST1.odb
base HSQL
(482.42 Kio) Téléchargé 174 fois
que j'ai essayé de migrer en FIREBIRD avec LO6.1
comme cela ne marchait pas,
j'ai sauvegardé mes tables dans un fichier cacl
j'ai créé avec LO6.0 une base FIREBIRD
FVP Firerbird.odb
base FIREBIRD
(345.26 Kio) Téléchargé 183 fois
et recopié les tables dans cette base
en demandant la détection automatique du format des cellules
en demandant que le champ ID soit clé primaire
l'opération a été OK, sauf que le champ ID, n'est plus en autoincrementation
j'ai créé des vues, mais ça plante pour la vue EXERCICE car il y a une formule CAST( YEAR( "DATE_MIN" ) - 1 || '-' || MONTH( "DATE_MIN" ) || '-' || DAY( "DATE_MIN" ) AS DATE ), FIREBIRD ne connait pas YEAR !!

de plus : une fois une vue créée on ne peut plus la modifier, car FIREBIRD la visualise comme une table !!!!

j'ai créé une requête, mais problème FIREBIRD ne connait pas CONCAT

J'ai créé un formulaire, qui s'ouvre comme il faut mais le contrôle après enregistrement d'une nouvelle opération ne marche pas

peut être faudrait il que je soumette ma base de donnée aux équipes qui développent la migration vers FIREBIRD ???
Libreoffice Version:7.5.8.2

Linux Mint 21.2
Noyau linux 5.15.0-91-generic
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Migration base interne HSQLDB vers FIREBIRD

Message par Piaf »

Bonjour
Tu devrais peut-être consulter un site sur le SQL de Firebird.
wormsf a écrit :j'ai créé une requête, mais problème FIREBIRD ne connait pas CONCAT

Code : Tout sélectionner

select first_name||' '||last_name from employee;
Take a note, if one of the columns is NULL, the result will be NULL. Why? Well, NULL means that value is unknown, so if you put together a known and an unknown value, you don't know what will you get as a result. Thus the result is also unknown or NULL.
To work around that problem use COALESCE function.
Excuse pour l'anglais mais je n'ai pas trouvé en français.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Migration base interne HSQLDB vers FIREBIRD

Message par jeanmimi »

Bonjour,
wormsf a écrit :FIREBIRD ne connait pas YEAR !!
La syntaxe est différente du SQL des Bases HSQLDB avec la fonction EXTRACT et l'alias juste nommé sans le code SQL AS :

Code : Tout sélectionner

SELECT "date", EXTRACT( YEAR FROM "date" ) "Année" FROM "Cotisation"
Tu peux te reporter à ce tutoriel comme suggéré par Piaf :
hxxxs://www.firebirdsql.org/file/documentation/ ... cs-extract

Quant à la concaténation, celle-ci fonctionne. Ici on retrouve le Code SQL connu ORDER BY pour un tri par ordre alphabétique des adhérents. Quant au Code SQL LIKE pour un critère, il s'exprime directement par le signe = :

Code : Tout sélectionner

SELECT "Cotisation"."date", EXTRACT( YEAR FROM "date" ) "Année", "ADHERENTS"."Prénom" || ' ' || "Nom" "Identité Adhérent" FROM "Cotisation", "ADHERENTS" WHERE "Cotisation"."N0" = "ADHERENTS"."ID" AND EXTRACT( YEAR FROM "date" ) = '2018' ORDER BY "ADHERENTS"."Nom" ASC
 Ajout : Il manque dans la Base une Table_détails_filleuls, avec les champs ID_Filleul (clé primaire), ID_Parrain, Nom_Filleul. Les champs Filleuls 1, puis 2 et 3 devraient être supprimés de la Table des Adhérents. 
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
wormsf
Membre hOOnoraire
Membre hOOnoraire
Messages : 166
Inscription : 02 janv. 2008 17:15

Re: Migration base interne HSQLDB vers FIREBIRD

Message par wormsf »

Merci Jeanmimi pour ces précisions, je vais étudier le code SQL de FIREBIRD, car si c'est le remplaçant à terme de HSQL, il faut que j'anticipe
QUand à la remarque
Il manque dans la Base une Table_détails_filleuls, avec les champs ID_Filleul (clé primaire), ID_Parrain, Nom_Filleul. Les champs Filleuls 1, puis 2 et 3 devraient être supprimés de la Table des Adhérents.
en fait dans la base HSQL, il y a 3 vues filleuls2 Filleuls3 filleuls4 , copies de la table filleuls, et que je n'ai pas remis dans la base FIREBIRD
je n'ai pas tout converti
il reste un problème dans la base FIREBIRD, les vues une fois créées, ne sont plus modifiables,car en mode édition, elles sont présentées comme des tables
Libreoffice Version:7.5.8.2

Linux Mint 21.2
Noyau linux 5.15.0-91-generic
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Migration base interne HSQLDB vers FIREBIRD

Message par Piaf »

Bonsoir
A priori les vues ne semblent effectivement pas modifiables, mais elles sont mises à jour en cas de modification des données de la table dont elles sont issues.
Attention aux fonctions SQL IFNULL devrait être remplacé par COALESCE, CASEWHEN par IIF, par exemple.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
wormsf
Membre hOOnoraire
Membre hOOnoraire
Messages : 166
Inscription : 02 janv. 2008 17:15

Re: Migration base interne HSQLDB vers FIREBIRD

Message par wormsf »

Merci à tous pour ces conseils,
je pense marquer le sujet comme résolu , car cela va être un travail de longue haleine
Libreoffice Version:7.5.8.2

Linux Mint 21.2
Noyau linux 5.15.0-91-generic
Répondre