WinDev

yulie Messages postés 1044 Statut Membre -  
yulie Messages postés 1044 Statut Membre -
Bonjour,

Dites, est-ce que quelqu'un sait comment enlever l'intégrité référentielle d'une liaison dans un mcd sous windev?

Merci,
@+
Yulie

Toi, Toi mon Toit...

75 réponses

  • 1
  • 2
  • 3
  • 4
Résumé de la discussion

La problématique centrale est de savoir comment enlever l'intégrité référentielle d'une liaison dans un MCD sous Windev et des difficultés liées à la gestion des contraintes d'intégrité. Des solutions essentielles indiquent d'utiliser la fonction HGèreIntégrité pour activer ou désactiver la gestion d'intégrité sur une liaison, en précisant le nom de la liaison et le fichier et en choisissant les contraintes à modifier. En cas de conversion de type entre numérique et chaîne, il peut être nécessaire d'ajuster les types de champs ou d'implémenter des conversions explicites, car cela peut empêcher l'application des contraintes. Des conseils pratiques recommandent aussi d'ouvrir les fichiers liés avant d'effectuer des opérations et d'explorer les options HyperFile plutôt que des requêtes externes.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Marcus
     
    théoriquement, tu peux retirer l'intégrité référencielle en ouvrant l'analyse de ton programme et en modifiant la liaison entre deux tables.
    tu peux aussi le gérer par programmation avec la fonction : HGèreIntégrité(...)
    0
  2. Marcus
     
    je t'envoie l'aide de windev sur la fonction...

    HGèreIntégrité
    Utilisation

    Active ou désactive la gestion d'une contrainte d'intégrité sur une liaison d'un fichier.

    Remarque : Par défaut, toutes les règles d'intégrité définies dans la description de l'analyse sont actives.

    // Désactiver le test des cardinalités sur la liaison entre
    // une commande et un client
    HGèreIntégrité(ClientCommande,hCardinalite,Faux)

    Syntaxe

    <Résultat> = HGèreIntégrité([<Nom de la liaison>, [<Nom du Fichier>,]] [<Contrainte d'intégrité>,] <Gestion>)

    Détail des paramètres

    <Résultat> : Booléen
    Correspond à l'ancienne gestion de l'intégrité (avant modification).
    Si la chaîne de caractères "*" a été utilisée pour les paramètres <Nom de la liaison> et / ou <Nom du fichier> , <Résultat> est à Vrai si une des gestion d'intégrité était activée.

    <Nom de la liaison> : Chaîne de caractères optionnelle (avec ou sans guillemets)

    Nom de la liaison concernée (nom composé des différents fichiers participant à la liaison). Si ce nom n'est pas spécifié ou est égal à "*", la nouvelle gestion de l'intégrité s'applique à toutes les liaisons définies dans l'analyse.

    <Nom du fichier> : Chaîne de caractères optionnelle (avec ou sans guillemets)

    Nom du fichier manipulé. Si ce nom n'est pas spécifié ou est égal à "*", la nouvelle gestion spécifiée s'applique à tous les fichiers intervenant dans la liaison (y compris les alias).

    <Contrainte d'intégrité> : Constante ou combinaison de constantes optionnelle de type Entier

    Permet de déterminer les contraintes d'intégrité à gérer. Si ce paramètre n'est pas spécifié, la nouvelle gestion s'applique à toutes les contraintes de la liaison.

    hCardinalité
    Test des cardinalités de la liaison.

    hEnModification
    Règle d'intégrité appliquée pendant une modification.

    hEnSuppression
    Règle d'intégrité appliquée pendant une suppression.

    <Gestion> : Booléen

    Vrai si la contrainte d'intégrité est activée, Faux si cette gestion doit être désactivée. Si seul ce paramètre est précisé, le mode de gestion spécifié s'applique à tous les fichiers.
    0
    1. yulie Messages postés 1044 Statut Membre
       
      Salut!

      Merci Marcus pour ton aide.
      Est-ce que tu sais où ajouter cette fonction? Est-ce dans l'initialisation du projet?

      Merci,
      Yulie



      Toi, Toi mon Toit...
      0
  3. Marcus
     
    Théoriquement oui, soit à l'initialisation du projet, soit à l'initialisation de ta fenetre principale, soit encore avant de faire une opération particulière, ce qui te permet derrière de réactivé ton intégrité réferencielle.

    Bonne journée.
    0
    1. yulie Messages postés 1044 Statut Membre
       
      Merci beaucoup,
      je vais essayer ça.

      Bonne journée à toi aussi!
      encore merci,
      Yulie


      Toi, Toi mon Toit...
      0
  4. Marcus
     
    si tu as d'autres questions, n'hésite pas
    A+
    0
    1. yulie Messages postés 1044 Statut Membre
       
      ok, merci bien!
      Si tu vois une Yulie en détresse dans les semaines à venir concernant WinDev, c'est moi!!!

      :-)
      a+
      Yulie

      Toi, Toi mon Toit...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marcus
     
    ce que tu peux faire, c'est ouvrir la page de discussion Windev que tu as crée, et de l'ajouter à tes favoris.
    De cette façon, si tu as une question, tu continue la discussion et ta question me parviendra directement en email.
    A+
    0
  7. yulie Messages postés 1044 Statut Membre
     
    Coucou c'est encore moi:
    La relation pour laquelle je veux supprimer l'integrité référentielle dois-je la définir au préalable en tant que description de liaison?

    Merci,
    Yulie

    Toi, Toi mon Toit...
    0
  8. Marcus
     
    Qu'est-ce que tu entends par "description de liaison" ?
    0
  9. yulie Messages postés 1044 Statut Membre
     
    je veux dire: est-ce que je dois écrire:

    Maliaison est une description de liaison

    avant d'écrire
    HGèreIntégrité(Maliaison, hCardinalité, Faux)

    ?

    Merci

    Toi, Toi mon Toit...
    0
  10. Marcus
     
    théoriquement non
    si ta liaison existe dans ton analyse, lorsque tu vas écrire ta fonction, windev va directement te proposé une liste de liaisons existantes dans laquelle tu choisis....
    tu travailles avec quelle version de windev ?
    0
  11. yulie Messages postés 1044 Statut Membre
     
    version 7.5
    mais quand je ne mets pas Maliaison est un Description de liaison avant et que je ne mets pas HGèreIntegrité("Maliaison", "*", hCardinalité, Faux)
    il me donne une erreur de compilation...

    Toi, Toi mon Toit...
    0
  12. Marcus
     
    ben si tu écris texto "HGèreIntegrité("Maliaison", "*", hCardinalité, Faux)", il ne connait peut etre pas ta liaison.
    il faut bien sur lui donner un nom de liaison existante...
    Si tu veux connaitre le nom de ta liaison, ouvre ta fenetre d'analyse, double clic sur ta liaison : son nom est inscrit dans la barre grise tout en haut.
    0
  13. yulie Messages postés 1044 Statut Membre
     
    Je l'ai fait et Maliaison correspond bien au nom de ma liaison...

    :-(

    Toi, Toi mon Toit...
    0
  14. Marcus
     
    ok, essaye juste cette syntaxe :

    HGèreIntégrité(Faux)

    dans ce cas, tu annules l'intégrité de toutes les liaisons en même temps. Tu fais ton traitement puis tu les réactives avec :

    HGèreIntégrité(Vrai)
    0
  15. yulie Messages postés 1044 Statut Membre
     
    L'inconvénient c'est que j'ai besoin d'avoir toujours uniquement cette liaison sans integrite referentielle. Ce n'est pas seulement pour un traitement...

    Bon, je vais faire des essais et je pense que je vais voir si je peux ajouter l'integrite referentielle, après tout, si les utilisateurs n'en ont pas particulièrement besoin...

    En tout cas je te remercie pour m'avoir aidé et m'avoir consacré un peu de ton temps...

    A bientôt pour de nouveaux problèmes... (à la fin de mon stage je vais devenir une pro de WinDev ;-) )

    Allez, bonne journée!
    Yulie

    Toi, Toi mon Toit...
    0
  16. Marcus
     
    ok je vois le problème, j'ai fait un test. Ecris ceci :

    EXTERN MaLiaison
    HGèreIntégrité(MaLiaison, hCardinalité, Faux)

    cela devrait fonctionner
    0
  17. yulie Messages postés 1044 Statut Membre
     
    C'est normal une fois que j'ai compilé et généré l'analyse qu'il me donne encore des cardinalités? Il n'est pas sensé me les enlever?

    Toi, Toi mon Toit...
    0
  18. Marcus
     
    ben si tu as retiré les cardinalités dans l'analyse, effectivement ce n'est pas normal...
    0
  19. yulie Messages postés 1044 Statut Membre
     
    Je me disais aussi.... Snifff!!!

    Il ne me reste plus qu'à pleurer toutes les larmes de mon corps... Je crois que je vais faire appel à mon prof... Peut-être qi'il me répondra s'il n'a pas trop de travail et s'il connait plus de WinDev que ce qu'il nous a montré... ;-)
    Si il me répond je te dis pourquoi ca marche pas...

    A+,
    Yulie

    Toi, Toi mon Toit...
    0
  20. Marcus
     
    as-tu essayé ce que je t'ai dit avant, à savoir déclarer ta liaison en extern ?
    En faisant le test, c'est l'erreur qu'il m'a sorti.
    Ensuite cela passe.
    0
  21. yulie Messages postés 1044 Statut Membre
     
    oui, oui, j'ai fait exactement ce que tu m'as conseillé de faire!
    Mais il me laisse quand même les cardinalités...

    Toi, Toi mon Toit...
    0
  • 1
  • 2
  • 3
  • 4