PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Annuler une liaison créé par HDécritLiaison
Annuler une liaison créé par HDécritLiaison
Débuté par KASINSKI, 22 mai 2017 18:02 - 5 réponses
Posté le 22 mai 2017 - 18:02
Bonjours à tous,

Je génère une BDD HFSQL par programmation avec des liaisons entre les différents fichiers.

Lorsque je n'ai plus besoin de cette BDD j'annule les fichiers avec "HAnnuleDéclaration".
Par contre je n'arrive pas à supprimer les liaisons que j'ai créer avec "HDécritLiaison"

Y a t-il une méthode prévu pour ça ?

Merci d'avance.

Cordialement,
Posté le 30 mai 2017 - 11:23
Bonjour,

Je relance avec un morceau de code qui sera plus explicite :

dfMON_FIC est une Description dede Fichier
drMA_RUB est une Description dede Rubrique
dlMA_LIAISON est une Description dede Liaison

sMON_FIC_1 est une chaîne = "FIC_1"
sMON_FIC_2 est une chaîne = "FIC_2"


dfMON_FIC..Nom = sMON_FIC_1
dfMON_FIC..Type = hFichierNormal
dfMON_FIC..CryptageFic = hCryptageStandard
dfMON_FIC..NullSupporté = Vrai


drMA_RUB..Nom = "ID_PERE"
drMA_RUB..Type = hRubEntier8
drMA_RUB..TypeClé = hCléDoublon
HDécritRubrique(dfMON_FIC, drMA_RUB)


drMA_RUB..Nom = "ID_AUTO"
drMA_RUB..Type = hRubIdAuto
drMA_RUB..TypeClé = hCléUnique
HDécritRubrique(dfMON_FIC, drMA_RUB)

HDécritFichier(dfMON_FIC)


dfMON_FIC..Nom = sMON_FIC_2
dfMON_FIC..Type = hFichierNormal
dfMON_FIC..CryptageFic = hCryptageStandard
dfMON_FIC..NullSupporté = Vrai


drMA_RUB..Nom = "ID_PERE"
drMA_RUB..Type = hRubEntier8
drMA_RUB..TypeClé = hCléDoublon
HDécritRubrique(dfMON_FIC, drMA_RUB)


drMA_RUB..Nom = "ID_AUTO"
drMA_RUB..Type = hRubIdAuto
drMA_RUB..TypeClé = hCléUnique
HDécritRubrique(dfMON_FIC, drMA_RUB)


HDécritFichier(dfMON_FIC)


dlMA_LIAISON..Nom = "LIAISON_" + sMON_FIC_1 + "_" + sMON_FIC_2
dlMA_LIAISON..FichierSource = sMON_FIC_1
dlMA_LIAISON..FichierRelié = sMON_FIC_2
dlMA_LIAISON..CléSource = "ID_AUTO"
dlMA_LIAISON..CléReliée = "ID_PERE"
dlMA_LIAISON..CardinalitéSourceMin = 0
dlMA_LIAISON..CardinalitéSourceMax = hCardinalitéInfinie
dlMA_LIAISON..CardinalitéReliéeMin = 1
dlMA_LIAISON..CardinalitéReliéeMax = 1
dlMA_LIAISON..RègleSuppression = hIntégritéCascade
HDécritLiaison(dlMA_LIAISON)

//HSupprimeliaison(sMON_FIC_1, sMON_FIC_2, "LIAISON_" + sMON_FIC_1 + "_" + sMON_FIC_2) -> ne marche pas !

// ICI IL FAUDRAIT ANNULER LA LIAISON COMME L'ANNULATION DES FICHIERS, QUI ELLE MARCHE

HAnnuleDéclaration(sMON_FIC_1)
HAnnuleDéclaration(sMON_FIC_2)


Quand j'exécute deux fois de suite ce code, j'ai une erreur à cause de la liaison que je ne sais pas supprimer.
Membre enregistré
1 923 messages
Popularité : +53 (65 votes)
Posté le 30 mai 2017 - 19:20
Bonjour,

Quelle est la position du ST sur ce sujet ?

--
Bon dev,
Jean-Pierre
Posté le 31 mai 2017 - 12:44
Bonjour,

Pour le moment, j'ai eu une réponse m'invitant à aller voir "HSupprimeLiaison", mais je n'ai pas encore eu de retour suite à l'envoi du même morceau de code que j'ai posté ici.

Il semblerait de toutes façon que la fonction "HSupprimeLiaison" ne soit pas adaptée à mon cas, car je ne cré pas de liaison spécifique, je cré les fichiers et les liaisons dans l'environnement local.
Posté le 01 juin 2017 - 11:37
Bonjour,

Nouvelle réponse du ST suite à l'envoi du code d'exemple.
Il me répond "Vous n'avez cas utiliser une BDD HFSQL C/S".

Je trouve ça fous que l'on puisse créer aisément une liaison par programmation et qu'il n'y ai aucun moyen de la supprimer.

Peut-être que quelqu'un connait un moyen détourné de régler ce problème ?
Membre enregistré
1 923 messages
Popularité : +53 (65 votes)
Posté le 01 juin 2017 - 14:31
Certes, la réponse du ST n'est pas intellectuellement satisfaisante ... mais pratiquement ...
Pourquoi ne pas suivre leur conseil, ce qui a priori règlerait votre problème :p ;) ?

--
Bon dev,
Jean-Pierre
Message modifié, 01 juin 2017 - 14:32