1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE [win 22] doublons bdd

Discussion dans 'Windev' créé par coomsy, Fev 9, 2018.

  1. coomsy

    coomsy New Member

    Inscrit:
    Jan 20, 2018
    Messages:
    10
    J'aime reçus:
    2
    bonjour
    j'ai un probleme de conception de base donnée j'ai une table synthese qui est alimenté par un fichier csv tous les jours
    Pour l'import du fichier csv pas de souscis c'est apres j'ai fait mes traitement requete pour alimenter ma table synthese qui comporte 30 colonnes avec comme id en automatique
    comment je dois faire pour eviter des doublons dans la table synthese jai creer une clef composé sur 6 champs de cette table mais à chaque lancement de l'application j'ai toujours des doublons
    Doit je creer une clef composé sur les 30 colonnes sachant ma base je dois la migrer vers postgres
    voici un bout de code
    en premier j'avais utilisé HLitrecherpremier mais j'avais toujours les doubons par la suite j'ai utilise
    HRecherchePremier(Synthese,CleCompose, [Synthese.STR_mission,Synthese.DAT_date,Synthese.STR_Bar_Act,Synthese.STR_client,Synthese.STR_designation,Synthese.STR_reference,
    Synthese.Nb_piece_controle,Synthese.Nb_piece_rebute,Synthese.Nb_piece_retouche,Synthese.STR_periode])
    // SI HTrouve(Synthese) = Vrai ALORS
    SI HTrouve(Synthese) = Vrai ALORS
    //Info("La synthese est deja presente")
    //HModifie(Synthese)
    SINON
    HAjoute(Synthese)
    FIN
     
  2. gelop4

    gelop4 Member
    MEMBRE WX

    Inscrit:
    Fev 7, 2018
    Messages:
    41
    J'aime reçus:
    77
    Est-tu sur que tu ne peux/doit pas avoir de doublon dans ton fichier csv en prenant que les 6 éléments de ta clé composé pour faire la différence ?

    Pour le code, si tu veut modifier l'enregistrement trouver, il faut le lire en premier !
    Donc :
    HSupprime(Synthese, HNumEnr())
    ou sinon utilise directement;
    HLitRecherchePremier()

    Ensuite je supose que le code poster ici est modifier?
    Dans HRecherchePremier les valeurs entre [ ] sont bien les valeur que tu a lut dans ton fichier ?
    De même, pour HAjoute() tu doit mettre a jour les rubriques en premier.
     
  3. coomsy

    coomsy New Member

    Inscrit:
    Jan 20, 2018
    Messages:
    10
    J'aime reçus:
    2

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Est-tu sur que tu ne peux/doit pas avoir de doublon dans ton fichier csv en prenant que les 6 éléments de ta clé composé pour faire la différence ?

    Pour le code, si tu veut modifier l'enregistrement trouver, il faut le lire en premier !
    Donc :
    HSupprime(Synthese, HNumEnr())
    ou sinon utilise directement;
    HLitRecherchePremier()

    Ensuite je supose que le code poster ici est modifier?
    Dans HRecherchePremier les valeurs entre [ ] sont bien les valeur que tu a lut dans ton fichier ?
    De même, pour HAjoute() tu doit mettre a jour les rubriques en premier.
    Cliquez pour agrandir...
    Non c 'est pour l'ajout dans la table bien sur j'ai pas mis tous le code

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Et dans mon fichier csv y' a pas c'est juste à chaque l'utilisateur lance je fais l'import des donnée pour alimenter la base et faire le traitement de la table synthese
     
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    261
    J'aime reçus:
    132
    dit est ci tu mis ta clé composé en clé unique dans le fichier synthese!
     
  • coomsy

    coomsy New Member

    Inscrit:
    Jan 20, 2018
    Messages:
    10
    J'aime reçus:
    2

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    dit est ci tu mis ta clé composé en clé unique dans le fichier synthese!
    Cliquez pour agrandir...
    Non j'ai pas mis je laissé la clef en id auto vu que le fichier csv alimente tous les jours la bdd
     
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    261
    J'aime reçus:
    132
    bin je veux dire mettre clé unique la rubrique synthese.clécomposé, comme ça si il y a un doublon vous aurai un message d'erreur doublon
     

    Fichiers attachés:

    • clé.jpg
      clé.jpg
      Taille de fichier:
      57.6 KB
      Affichages:
      15
  • Diden75

    Diden75 New Member
    MEMBRE WX WXG 22

    Inscrit:
    Jan 15, 2018
    Messages:
    25
    J'aime reçus:
    8
    Bonjour,
    Pour faire la vérification de ton enregistrement à travers ta clé composé, essaies plutôt d'utiliser les variables de ta table au lieu de variable d'initialisation des rubriques de ton fichier synthese .
    exemple au lieu de mettre : Synthese.DAT_Date tu mets TableOMSynthese.ColDatesaisie[j]
    Il y a parfois des surprise sur windev.
    Diden.
     
    coomsy et elhacene aiment ça.
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    261
    J'aime reçus:
    132
    très bien Diden75 tu ma sifflé la solution sauf que ta solution ne fonction pas si le test de condition n'est pas mit avant l'affectation des valeur au rubrique alors je vous donne la solution en pièces jointe
     

    Fichiers attachés:

    • clé2.jpg
      clé2.jpg
      Taille de fichier:
      97.7 KB
      Affichages:
      7
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    261
    J'aime reçus:
    132
    coomsy apprécie ceci.
  • coomsy

    coomsy New Member

    Inscrit:
    Jan 20, 2018
    Messages:
    10
    J'aime reçus:
    2

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    je viens de comprendre la subtilité parfois en windev on a des surprises je vais mettre ça en pratique et mettre ma clef compose en clef unique
     
    elhacene apprécie ceci.
  • nessb

    nessb New Member

    Inscrit:
    Fev 10, 2018
    Messages:
    3
    J'aime reçus:
    1
    tu peux lancer une boucle qui permet de verifier les doublons.
    par exemple tu fais :

    i est une chaine
    i="ok"

    POUR TOUT synthese AVEC DAT_date=tableomsynthese.Col_datesaisie
    SI synthese.Etatmission=tableomsynthese.ColEtat_mission ALORS
    SI synthese.STR_NUM=tableomsynthese.col_str_num ALORS SI
    ainsi de suite
    i="non"
    FIN
    FIN
    FIN

    SELON i

    CAS "ok"

    synthese.Etatmission=tableomsynthese.ColEtat_mission
    synthese.STR_NUM=tableomsynthese.col_str_num
    ainsi de suite
    hajoute(synthese)
    Cas "no"

    info("existe deja")

    FIN



    ça va marcher
     
    #11 nessb, Fev 11, 2018
    Dernière édition: Fev 11, 2018
    coomsy apprécie ceci.
  • Partager cette page

    Chargement...