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

WinDev Discussion :

Verifier si une valeur existe avant de l'ajouter


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut Verifier si une valeur existe avant de l'ajouter
    Bonjour à tous,
    J'ai du mal à trouver comment vérifier la présence d'une valeur dans un champs avant l'insertion de cette même valeur( si elle existe dans le champs1 alors elle s'ajoute sinon elle s'ajoute dans le champs2).

    J'ai vraiment galéré avant de venir demander de l'aide.
    Merci pour toute aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    et tu es arrivé à quoi comme solution, même si elle ne fonctionne pas ... ? Car sans savoir où tu en es, ça va être compliqué !

    à bientôt,

    Nicolas

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    Tu parles d'un champ, mais sans préciser le type du champ: champ de saisie, table, liste, combo, arbre, zone répétée...

    Tatayo.

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut!

    F1 sur
    - la fonction Chaineoccurence()
    - affectation de valeur sValeurInitiale = sValeurInitial + sNouvelleValeur


  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Merci ,
    -Oui désolé j'ai oublié de mentionner quel type de champ , c'est un champ de saisie. Lorsque j'entre la valeur, il vérifie si cette valeur existe déjà dans ce champ1 si oui il l'ajoute sinon il la place dans le champ2.

    -Bon et là ou j'en suis, je pense à un déclencheur qui se déclenche à l'ajout (INSERT). Si quelqu'un a la formule cela m'aiderait énormément dans mon projet.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Zouzoukha,

    J'ai vu l'aide sur la fonction chaineoccurence() mais ce n'est pas vraiment ce que je veux faire.
    je detaille un peu: j'ai une table qui contient trois champs: ID(int), champ1(varchar),champ2(varchar). J'aimerais lors d'un ajout dans ma table, et lorsque je rentre une valeur sois dans le champ1 soit le champ2 mais pas les deux. Donc quand je rentre une valeur , il verifie si elle existe déja dans le base de donnée, si oui il l'ajoute sinon il l'envoi vers le champ2.
    J'éspére que j'ai été assez clair sinon je ferais de mon mieux encore.
    Merci à vous.

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Vous voulez tester l'existence de la valeur d'un champ de saisie dans un champ d'une table d'une base de données ?

    Si c'est le cas vous pouvez :
    -> créer une contrainte d'intégrité de type clé unique
    -> ajouter un contrôle programmé depuis l'interface ou dans trigger de type ON INSERT OR UPDATE afin d'affecter la valeur au deuxième champ si nécessaire

    Toutefois le coup de "je l'affecte à champ2 si ça existe déjà dans champ1" laisse penser qu'i l y a un pb de modélisation.... après tout dépend du contexte.
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Merci Michel,

    Malheureusement, c'est le truc le plus important dans mon projet. Quand j’insère une valeur par exemple 200, tant que 200 est enregistré dans le champ1, elle doit toujours être enregistré dans ce champ,même si je l'ajoute dans le champ2,il la renvoie au champ1.
    Maintenant tu m'as expliqué comment tester l’existence, il me reste ce deuxième point qui est primordial. :s
    Il se peut de faire une fonction ou un trigger ?

    Merci encore de votre aide, je suis vraiment coincé là.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Sinon, y'aurait il une autre méthode pour traiter cela ?

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    S'il faut chercher dans la table (et non dans un champ de saisie) => TableCherche()
    S'il faut chercher dans la base => requête.
    Où faire le test ? Ca dépend de l'application: en sortie de la colonne, de la ligne, de la table... C'est selon.

    Mais j'ai bien du mal à comprendre la finalité de tout ça.

    Tatayo.

  11. #11
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    J'ai pourtant l'impression d'avoir répondu à cette question mais je reformule : vous pouvez aussi bien le faire par le biais d'une fonction que d'un trigger...

    Je pense que le comportement/l'intégration d'une fonction est plus facile à appréhender... donc (pour être bien clair) je pense que vous devriez faire une fonction.
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Bon je vais tout expliquer,

    Mon application se porte sur le fait d'optimiser l'ajout des terminaux. Il y'a deux types de terminaux , terminalA et terminal B.
    Dans la société, ils travaillent sur Excel, et ils insérent les valeurs juste comme ça, tu peux trouver la référence du terminal A dans le terminal B aussi , ce qui fait défaut qu'on veut trier les valeurs.
    Pour remédier à ça, on m'a demandé de faire une petite application qui gére ce problème, lorsque le mec il entre une valeur-sachant que d'autre valeur ont eté entrer auparavant et qu'elles sont bien organisées- une requête fasse le boulot , si elle trouve la valeur correspondante dans la base de donnée dans le terminal A, elle l'ajoute sinon elle l'ajoute automatiquement dans le terminal B.


    Voila en quoi se résume mon application.

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Michel,

    quel fonction? tu peux me donner le code s'il te plait. Si c'est pas trop demandé.

  14. #14
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Vous venez vous-même de décrire l'algo de la fonction... donc je ne vois pas trop ce qu'on peut vous dire de plus.

    Je ne serais pas contre vous donnez un coup de main mais vous n'avez jamais montré la moindre ligne de code, schéma de base de données ni interface.... donc c'est dur !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  15. #15
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Ta requête doit être du genre :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ID FROM TABLE_DES_3_CHAMPS WHERE champ1 = '{parametre_Nom_Terminal_Saisi}'
    Tu testes ensuite le retour de cette requête pour savoir si ID est > 0

    Ceci dit :

    Si tu n'as pas de champ1 correspondant, tu dois ajouter une ligne dans la base -> ça me semble normal.
    Si tu as déjà un champ1 correspondant, quel sera le champ2 que tu vas alimenter ? Si c'est celui qui a le champ1 correspondant, quel est l'intérêt ??? Autant ajouter toutes les lignes avec champ1 = champ2 et tu ne te poses plus de question ...

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Salut,

    Je pense qu'un déclencheur ferait l'affaire. Il qui se déclenche dés l'ajout d'un terminal et qui teste s'il va le mettre soit dans le terminal A ou B.
    Est-ce que tu peux m'aider sur le code du déclencheur SVP?

  17. #17
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Travailles-tu en mode Client/Serveur ? car la création de trigger nécessite un SGBD...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  18. #18
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Non j'utilise HyperFileSQL Classic. Pourtant j'ai la possibilité d'ajouter un trigger dans l'analyse.

  19. #19
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Donc si je comprends bien:
    L'utilisateur saisie une valeur dans un champ de saisie (et non dans une table...).
    L'application doit chercher dans une table de la base (dans un fichier HF) si cette valeur se trouve dans la rubrique 1.
    Si c'est le cas => ajout d'une ligne dans la table, avec la valeur saisie dans la rubrique 1 (terminal A)
    Si ce n'est pas le cas => ajout d'une ligne dans la table, avec la valeur saisie dans la rubrique 2 (terminal B)

    Donc toutes les valeurs qui existent déjà dans la première rubrique vont se retrouver en doublon, et toutes les valeurs inconnues vont être regroupées dans la deuxième rubrique.

    Soit il manque quelque chose dans les explications, soit il y a un gros problème de modélisation.

    Tatayo.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 74
    Points : 0
    Points
    0
    Par défaut
    Nicolas,

    Si je fais terminalA=terminalB, ce serait comme sur Excel, et cela n'aurait aucun intérêt -> Lors du tri ou du filtrage, il y'aurait toujours ce probléme qui se pose -> celui des données inséré n'importe comment.Voici une petite capture sur Excel Nom : Untitled.png
Affichages : 4331
Taille : 57,0 Ko
    Comme vous voyez, on trouve la réf du terminal 320251275 dans les deux terminaux, si c'etait d'un seul coté -> cela faciliterait la tâche lors du filtrage

Discussions similaires

  1. test si une valeur existe dans un tableau
    Par Maria1505 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 15/08/2007, 17h10
  2. Tester la base pour savoir si une valeur existe
    Par adrien.gendre dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/07/2007, 17h27
  3. Comment verifier si une table existe deja
    Par amine_en_france dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/03/2007, 17h21
  4. Réponses: 2
    Dernier message: 17/08/2005, 14h40
  5. Tester qu'une valeur existe dans une "liste"
    Par Oluha dans le forum Langage
    Réponses: 12
    Dernier message: 04/08/2005, 23h01

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