Page 1 sur 1

[Résolu] Migration base interne HSQLDB vers FIREBIRD

Publié : 11 janv. 2019 15:43
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

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 12 janv. 2019 16:34
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.

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 12 janv. 2019 16:58
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.

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 13 janv. 2019 18:56
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
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
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 ???

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 14 janv. 2019 12:05
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+

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 14 janv. 2019 17:13
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. 

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 14 janv. 2019 20:04
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

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 14 janv. 2019 21:13
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+

Re: Migration base interne HSQLDB vers FIREBIRD

Publié : 15 janv. 2019 09:07
par wormsf
Merci à tous pour ces conseils,
je pense marquer le sujet comme résolu , car cela va être un travail de longue haleine