IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HyperFileSQL Discussion :

Problèmes HerreurDoublon() urgent !


Sujet :

HyperFileSQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Problèmes HerreurDoublon() urgent !
    Bonsoir tous le monde,
    Je suis débutante en Windev et je cherche à gérer ma BDD hyperfile en utilisant la fonction HerreurDoublon() ... mais cette fonction me renvoi à chaque fois FAUX dans tous les cas.

    j'utilise cette fonction dans une procédure générale appelée par un trigger !!

    SVP aidez-moi, c'est urgent!


  2. #2
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    bonsoir,
    Sans plus de précision(sans code), il est difficile de savoir ce qui se passe. Postez votre code svp.
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par miripesage Voir le message
    bonsoir,
    Sans plus de précision(sans code), il est difficile de savoir ce qui se passe. Postez votre code svp.
    Alors le voici:
    PROCEDURE proctrigger()

    SELON Majuscule(H.FonctionTrigger)

    CAS "HAJOUTE"

    SI Trace ALORS Trace("Trigger avant : Ajout")

    SI HErreurDoublon()=Vrai ALORS
    //abondon de l'action
    H.AFaire="A"
    Erreur("Doublons: Enregistrement Existant !")
    SINON
    //ajouter
    Dialogue("Ajout Réussi !")
    FIN

    CAS "HMODIFIE"
    SI Trace ALORS Trace("Trigger avant : Modification")
    SI HErreurDoublon()=Vrai ALORS
    //abondon de l'action
    H.AFaire="A"
    Erreur("Integrite:: Enregistrement Existant")
    SINON
    //modifier
    Dialogue("Modification Réussi !")
    FIN


    CAS "HSUPPRIME"
    SI Trace ALORS Trace("Trigger avant : Suppression")
    //1 : &Supprimer
    //2 : &Ne pas supprimer
    SELON Dialogue("voulez-vous supprimer cette enregistement ?")
    // supprimer
    Erreur("Erreur: "+HErreurIntégrité())
    CAS 1
    SI HErreurIntégrité()=Vrai ALORS
    //abondon de l'action
    H.AFaire="A"
    Dialogue("Impossible: Enregistrement Lié !")

    SINON
    Dialogue("Suppression Finie !")
    //sortir selon
    FIN

    // ne pas supprimer
    CAS 2
    //abondon de l'action
    H.AFaire="A"


    FIN
    FIN

  4. #4
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, votre code est anormale : revoyez ce qui est en rouge :

    Citation Envoyé par princesse_sissi Voir le message
    Alors le voici:
    PROCEDURE proctrigger()

    SELON Majuscule(H.FonctionTrigger)

    CAS "HAJOUTE"

    SI Trace ALORS Trace("Trigger avant : Ajout")

    SI HErreurDoublon()=Vrai ALORS
    //abondon de l'action
    H.AFaire="A"
    Erreur("Doublons: Enregistrement Existant !")
    SINON
    //ajouter
    Dialogue("Ajout Réussi !")
    FIN

    CAS "HMODIFIE"
    SI Trace ALORS Trace("Trigger avant : Modification")
    SI HErreurDoublon()=Vrai ALORS
    //abondon de l'action
    H.AFaire="A"
    Erreur("Integrite:: Enregistrement Existant")
    SINON
    //modifier
    Dialogue("Modification Réussi !")
    FIN


    CAS "HSUPPRIME"
    SI Trace ALORS Trace("Trigger avant : Suppression")
    //1 : &Supprimer
    //2 : &Ne pas supprimer
    SELON Dialogue("voulez-vous supprimer cette enregistement ?")
    // supprimer
    Erreur("Erreur: "+HErreurIntégrité())
    CAS 1
    SI HErreurIntégrité()=Vrai ALORS
    //abondon de l'action
    H.AFaire="A"
    Dialogue("Impossible: Enregistrement Lié !")

    SINON
    Dialogue("Suppression Finie !")
    //sortir selon
    FIN

    // ne pas supprimer
    CAS 2
    //abondon de l'action
    H.AFaire="A"


    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Non, ce qui est en rouge :

    TRACE: pour afficher seulement une fenetre ou on pourra voir quelle fonction est en cours

    Dialogue: pour afficher une fenetre avec l'utilisateur afin de savoir si tout a marcher bien.


    Mon problème est avec :HerreurDoublon, HerreurIntegrite renvoie toujours FAUX!

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Bonjour,

    à quel moment fais tu appel à ta procédure proctrigger() ?
    Elle doit être "mise en place" avec HDécritTrigger() et tu dois l'appeler après les hajoute(), hmodifie(), hsupprime().
    Attention aussi tu dois gérer le hintégrité mais aussi le herreurdoublon juste après l'opération sous peine de "fausser' les valeurs retournées.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    à quel moment fais tu appel à ta procédure proctrigger() ?
    Elle doit être "mise en place" avec HDécritTrigger() et tu dois l'appeler après les hajoute(), hmodifie(), hsupprime().
    Attention aussi tu dois gérer le hintégrité mais aussi le herreurdoublon juste après l'opération sous peine de "fausser' les valeurs retournées.
    Bonjour,
    Merci de répondre!
    Effectivement:
    ResultatTrigger = HDécritTrigger("*","HAJOUTE,HMODIFIE,HSUPPRIME",proctrigger, hTriggerAvant)

    Et à chaque appel de l'une des 03 fonctions précédente, la procédure démarre ...

    Mais, les fonctions de gestion d’intégrité et des doublons renvoi faux

    Je donne mon code:
    Code du projet générale
    // Dans le code d'initialisation du projet
    LOCAL
    ResultatTrigger est un booléen


    // changer le mode de tous les fichiers
    //ici, tous les fichier en mode multi-utilisateurs
    HMode(hModeMulti)

    // Création du Trigger AVANT pour tous les fichiers de l'analyse
    ResultatTrigger = HDécritTrigger("*","HAJOUTE,HMODIFIE,HSUPPRIME",proctrigger, hTriggerAvant)

    // Avec "VerifDroitUtilisateur" une procédure globale du projet
    SI ResultatTrigger = Faux ALORS
    DélaiAvantFermeture(1000)
    Erreur("Erreur sur un trigger : " + HErreurInfo)
    RETOUR
    FIN
    proctrigger est déjà donné avant ... (procédure globale)


    Merci de me répondre !

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Il ne faudrait pas faire plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    H.AFaire="A"
    SI HErreurDoublon()=Vrai ALORS
    Je n'ai jamais mis en oeuvre de trigger...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  9. #9
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, puisque vous avez décider de gérer vous mëme les erreurs de doublon, intégrité,..., avez vous désactivé la gestion automatique des erreurs?
    Si non, il faut ajouter dans l'initialisation du projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Désactivation de la gestion automatique des erreurs 
    HSurErreur("*",hErrTout,"")
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Merci pour vos réponses !

    @ frenchsting:
    Ceci juste pour éviter la fenêtre d'erreur de Windev n'a aucun impact sur HerreurDoublon()
    H.AFaire="A"
    @miripesage:
    Comme j'utilise herreurDoublon() alors la gestion est automatique avec des fonctions prédéfinies, et ce que je veux et d’arrêter l’opération(hajoute, hmodifie) et le message de windev pour que l'utilisateur soit alaise.

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 162
    Points : 9 112
    Points
    9 112
    Par défaut
    Question : sur quelle version de windev es-tu ? Et sur quelle version de hf (classic ou CS) ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  12. #12
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Question : sur quelle version de windev es-tu ? Et sur quelle version de hf (classic ou CS) ?

    Windev 15
    HyperFile Classic

    Merci à vous !

  13. #13
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    J'ai essayé ton code mais je suis entré dans une bouvle infinie ...
    Sur le 1er coup herreurDoublon=0
    Sinon du 02eme coup a l'infini =1




    Merci

  14. #14
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Faites un essai avec ceci :

    dans "initialisation du projet"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HSurErreur("*",hErrIntégrité+hErrDoublon+...
                    hErrModification+hErrSuppression,"proctrigger")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    PROCEDURE proctrigger()
     
    SELON Majuscule(H.FonctionTrigger)
     
    CAS "HAJOUTE"
     
    SI Trace ALORS Trace("Trigger avant : Ajout")
     
    SI HErreurDoublon()=Vrai ALORS
     // ON rend la main 
    RENVOYER opFinTraitement
    FIN
     
    CAS "HMODIFIE"
    SI Trace ALORS Trace("Trigger avant : Modification")
    SI HErreurDoublon()=Vrai ALORS 
      // ON rend la main 
    RENVOYER opFinTraitement
    FIN
     
    CAS "HSUPPRIME"
    SI Trace ALORS Trace("Trigger avant : Suppression") 
    //1 : &Supprimer
    //2 : &Ne pas supprimer
    SELON Dialogue("voulez-vous supprimer cette enregistement ?")
    // supprimer 
     
    CAS 1 
    SI HErreurIntégrité()=Vrai ALORS
      RENVOYER opFinTraitement
    FIN
     
    // ne pas supprimer
    CAS 2 
    //abondon de l'action
    RENVOYER opFinTraitement
     
     
    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  15. #15
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Bonjour tous le monde,

    Effectivement, j'ai résolu mon problème :
    1/ Dans l'initialisation du projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HSurErreur("*",hErrIntégrité+hErrDoublon+hErrModification,"proctrigger")
    2/ Dans la procédure du tigger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CAS "HAJOUTE"
    		SI HErreurDoublon()=Vrai  ALORS
    			Erreur("Doublons: Enregistrement Existant !")
    			Ferme()
    			 RENVOYER opFinTraitement 
    		FIN
    3/ Et enfin, pour optimiser un peu le code pour l'utilisateur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	test=HAjoute(Affaire)
    			//Msg d'ajout
    			IF test=Vrai ALORS 
    				Dialogue("Ajout Réussi !")
    			FIN

    Merci beaucoup pour votre aide à vous tous et spécialement à toi :
    miripesage

  16. #16
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, alors appuyez sur et bon développement
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#] Problème xml (urgent)
    Par noobyyy dans le forum C#
    Réponses: 9
    Dernier message: 27/02/2009, 13h24
  2. [problème peu urgent] lien entre formulaire et table
    Par ghyosmik dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo