PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → [WD23] Impossible de modifier liaison (HFSQL C/S)
[WD23] Impossible de modifier liaison (HFSQL C/S)
Iniciado por Maxime DEMUNCK, jan., 17 2019 3:16 PM - 12 respostas
Membro registado
48 mensagems
Publicado em janeiro, 17 2019 - 3:16 PM
Bonjour, depuis maintenant un bon moment je me retrouve bloqué face à un problème de modification / suppression de liaison de deux fichiers mais aucun problème lors de l'ajout d'une liaison.
Pour ce faire j'utilise l'analyse WinDev, et depuis celle je souhaite modifier/supprimer une liaison entre deux fichiers afin de mettre à jour correctement un logiciel.
Cependant je me retrouve toujours face au même problème qui est qu'il ne trouve pas les liaisons.

Ici, j'essaie supprimer une liaison de type 0,n : 1,1.




Mais impossible selon WinDev me signalant que le lien entre ces deux fichiers est inconnu alors que le lien est bel est bien présent sur la base de données du serveur.


Membro registado
33 mensagems
Popularité : +1 (1 vote)
Publicado em janeiro, 17 2019 - 4:16 PM
Bonjour,

C'est peut être qu'elle existe encore dans l'analyse mais qu'elle n'existe plus physiquement dans la base de données sur le serveur HFSQL

--
BàV
Romuald
Membro registado
48 mensagems
Publicado em janeiro, 17 2019 - 4:35 PM
J'ai pensé à cela mais hélas non.
Lorsque j'essaye de créer un enregistrement je reçois une erreur comme quoi la contrainte m'empêche de réaliser mon ajout.
Je précise aussi que même si je met la liaison en 0,n : 0,1 dans l'analyse et que lorsque je souhaite mettre à jour la base de données, je reçois exactement la même erreur (Et je continue d'avoir des erreur lorsque je souhaite créer un enregistrement à cause de la liaison existante)
Membro registado
70 mensagems
Popularité : +1 (1 vote)
Publicado em janeiro, 18 2019 - 8:17 AM
Bonjour,
Avez-vous essayer de redémarrer le serveur HFSQL ?
(j'ai eu un cas similaire en W23 et j'ai du redémarrer le serveur HFSQL pour qu'il le prenne en compte)

--
Julien
Membro registado
48 mensagems
Publicado em janeiro, 18 2019 - 9:12 AM
Bonjour,
Oui j'ai déjà essayé aussi, j'ai aussi essayé de redémarrer l'ordinateur (le serveur est sur mon ordinateur) mais sans aucun changement...
Membro registado
72 mensagems
Popularité : +10 (10 votes)
Publicado em janeiro, 18 2019 - 7:38 PM
J'ai déjà eu un problème semblable avec une liaison qui se fesait de ma BD de production vers ma BD de Test. Il était impossible de supprimer la liaison car elle était "Introuvable" mais était visible dans l'onglet Liaison du Centre de Contrôle HFSQL.
J'ai remarquer que si les 2 connexion était paramétrer dans l'analyse, une fois de temps en temps, des liaisons erronées ce créait entre les 2 BD car elles ont les même table de données... Bref, la solution, ne plus mettre de connexion dans l'analyse pointant sur 2 BD portant les même nom de table. On doit ce connecter par programmation. C'est peut-être moi qui se prend mal, mais je fait un dupliquer de la BD de prod vers BD_TEST à partir du Centre de Contrôle, c'est peut-être ca aussi qui occasionne ce bug.

Pour résoudre le problème, j'ai dû effacer le fichier Integrity.FIC et Integrity.ndx de mes 2 bases de données
Par défaut les miens sont dans C:\ProgramData\PC SOFT\ServeurHFSQL [NomServeur]\BDD\[NomBD]\__System\

Va voir les liaisons dans le centre de contrôles et valide qu'il n'y pas de liaison existante entre 2 BD différentes, si oui, tu vas devoir supprimer le Integrity sur les 2 BD pour que ca fonctionne.

En relançant la Génération de l'analyse à partir de l'analyse, les liaisons et contrainte d'intégrité vont se recréer automatiquement, entk... ca fonctionner pour moi.

Tu peux te faire une BD test pour tester si tu veux, une fois les fichier Integrity effacer, retourne voir les liaisons dans l'onglet Liaison du Centre de contrôle, il ne devrait plus rien avoir, ensuite tu regénère ton analyse et les liaison devrait réaparaitre.


*** Fait un backup avant de faire cette manipulation, je ne suis pas responsable si cette manipulation tourne mal :P

Svp, s'il y a des avis contraire, faite le savoir, pour mois ca l'a fonctionner sans embuche.
Membro registado
48 mensagems
Publicado em janeiro, 24 2019 - 2:28 PM
Bonjour, j'ai essayé ce que vous avez dit, mais rien à faire, il continue de me sortir les mêmes erreurs.

Si quelqu'un a une autre idée, je suis preneur, merci.
Membro registado
9 mensagems
Publicado em outubro, 25 2019 - 1:52 PM
Bonjour,

je me suis retrouvé dans cette situation il y plusieurs mois.
J'avais effectué la procédure de Jonathan avec succès. Malheureusement je me retrouve aujourd'hui dans une situation identique.

Dans mon cas je travaille avec 3 DB
- DB TEST
- DB Société1
- DB Société2

J'effectue donc toutes les améliorations sur la DB TEST après validations des améliorations.
Je souhaite apporter les adaptations sur les DB des sociétés 1 et 2.
Les intégrités étant existant sur la DB TEST il ne propose sur les DB Société 1 et 2.
Toutes les autres modifications sont bien prises en compte.
Quelqu'un aurait-il trouvé une solution ou une réponse du support technique a ce sujet.

Bien à vous.
Membro registado
135 mensagems
Popularité : +8 (8 votes)
Publicado em novembro, 05 2019 - 9:17 AM
Bonjour,

Je viens de (re) tomber sur ce problème. Voila comment j'ai réussi à supprimer les liaisons.

1) Noter les liaisons en erreur (capture écran ?)
2) Stopper le serveur
3) ouvrir le fichier [RepertoireDataHFCS]\__System\Integrity.FIC avec wdmap et localiser les liaisons. Si vous les trouvez, supprimez les enregistrements correspondants. Fermez WDMAP
4) ouvrir le fichier [RepertoireDataHFCS]\[VotreBase]\__System\Integrity.FIC et supprimer TOUTES les liaisons. Fermez WDMAP
5) Redémarrez le serveur HFCS
6) Lancez la modification des fichiers depuis votre projet pour recréer les liaisons.

Evidemment, je ne peux pas garantir des éventuels effets de bord.. Donc méfiance tout de même !
Ca a fonctionné pour moi, pas de problème apparent ensuite. J'ai envoyé un message au ST car évidemment si je pouvais éviter d'aller bidouiller les fichiers du serveur HFCS, ça serai préférable !

--
Dominique DAUSSY
http://www.serviceinfo76.com
Développeur de votre solution Windev, WebDev et Windev Mobile
Membro registado
72 mensagems
Popularité : +10 (10 votes)
Publicado em novembro, 05 2019 - 2:40 PM
Je tiens à mentionner que j'avais ce problème quand j'avais 2 connexion à des base de données identique dans mon analyse, exemple, BDD de production et BDD de test ou avec des tables de données portant le même nom. On dirais qu'il mélange les liaisons entre les base de données lorsque les tables ont le même nom.

Depuis quelque temps, je ne laisse que ma connexion à la base de donnée principal dans l'analyse.
Et pour me connecter à mes bases de test, je crée la connexion par programmation plutôt que de l'avoir dans l'analyse.

Je n'ai plus ce problème depuis que je fais ça.

Windev 23 53k
CCHFSQL 230053b
Membro registado
31 mensagems
Popularité : +5 (5 votes)
Publicado em novembro, 08 2019 - 9:34 AM
Jonathan a écrit :
Depuis quelque temps, je ne laisse que ma connexion à la base de donnée principal dans l'analyse.
Et pour me connecter à mes bases de test, je crée la connexion par programmation plutôt que de l'avoir dans l'analyse.

Je n'ai plus ce problème depuis que je fais ça.


Heu, ce serait quand plus prudent de faire l'inverse, non ?
(base de test connectée, et base de donnée principale via programmation)

Perso je ne lie jamais mes fichiers de l'analyse avec une connexion, ils sont tous décrits en HFClassic
J'ai une procédure qui récupère les paramètres de la base de données (HF/CS ou classic, répertoires, identifiants etc...) et qui affecte une connexion aux fichiers (on peut même faire des groupes de fichiers et affecter des connexions différentes selon les groupes)

Bye
Membro registado
72 mensagems
Popularité : +10 (10 votes)
Publicado em novembro, 08 2019 - 2:20 PM
Oui j'avoue que ça pourrait être plus prudent :P
Membro registado
9 mensagems
Publicado em março, 15 2022 - 9:50 AM
Bonjour,
Une réponse plus de 3 ans après, je sais ce n'est pas terrible. Mais j'ai eu le problème et j'ai eu beaucoup de mal à trouver la solution.

Il y a une solution plus simple et plus propre qui existe maintenant :
A l'aide du centre de control, on va dans le descriptif de la base de données qui a l'erreur. On choisit l'onglet "Liaisons" et on supprime le ligne qui pose problème.

Cela nous évite de fouiller dans les fichiers de la base de données et nous évite un redémarrage du serveur de la base de données.

P.S. : N'oubliez de synchroniser le projet avec la base de données après, sinon, vous risquez de remettre l'erreur dans la base de données.
Mensagem modificada, março, 15 2022 - 9:52 AM